2

我遇到了这个正则表达式的问题。我想返回这种模式的第一次出现#2344....。但不知何故,它正在返回所有事件。

var title = '#34 #24 pofejwopwefjopewfjpfeijefow'
pointsRegEx = /(#\d+){1}/;
points = title.match(pointsRegEx);

JSFIDDLE:http: //jsfiddle.net/KbGVU/1

4

2 回答 2

4

您的正则表达式工作正常。在您的正则表达式中,您有(). 这将创建一个组。 .match返回一个数组。第一个元素是整个正则表达式匹配的结果,其他元素是您的正则表达式中的每个组。

.match正在返回您,['#34','#34']因为第一个是整个正则表达式,第二个是您的 regex 中的组(#\d+)

注意:{1}不需要,因为它会默认匹配 1 个匹配项。

从这里返回的数组的属性.match记录在这里:mozilla docs

于 2012-05-17T19:09:36.767 回答
0

得到了 chya ...您不需要将匹配项与 () 分组匹配...

http://jsfiddle.net/KbGVU/3/

/#\d*/应该这样做

于 2012-05-17T19:21:19.860 回答