我遇到了這個正則表達式的問題。我想返回此模式的第一個出現#2344....
。但不知何故,它返回所有事件。javascript匹配太多次
var title = '#34 #24 pofejwopwefjopewfjpfeijefow'
pointsRegEx = /(#\d+){1}/;
points = title.match(pointsRegEx);
的jsfiddle:http://jsfiddle.net/KbGVU/1
我遇到了這個正則表達式的問題。我想返回此模式的第一個出現#2344....
。但不知何故,它返回所有事件。javascript匹配太多次
var title = '#34 #24 pofejwopwefjopewfjpfeijefow'
pointsRegEx = /(#\d+){1}/;
points = title.match(pointsRegEx);
的jsfiddle:http://jsfiddle.net/KbGVU/1
你的正則表達式是工作的罰款。在你的正則表達式中,你有()
。這創建了一個組。 .match
返回一個數組。第一個元素是整個正則表達式匹配的結果,其他元素來自您的正則表達式。
.match
正在返回您['#34','#34']
,因爲第1個是整個正則表達式,第2個是您的正則表達式組(#\d+)
。
注意:{1}
不需要,因爲它默認匹配1個匹配項。
從.match
返回的數組屬性在此處記錄爲:mozilla docs。
我想他想要一個散列後的數字。所以/#\ d + /會更好。 –
這些都是一樣的東西,一個更貪婪。 – Relic
怎麼樣/#\ d + /?你能展示更多的例子嗎? –
它的工作,奇怪我無法封裝它。 – einstein