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']1つ目は正規表現全体であり、2つ目は正規表現内のグループであるため、が返されます(#\d+)

注:{1}デフォルトでは1つの一致に一致するため、必要ありません。

から返される配列のプロパティは、mozilladocs.matchに記載されています。

于 2012-05-17T19:09:36.767 に答える
0

わかった... () グループ化で一致を一致させる必要はありません...

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

/#\d*/やるべきだ

于 2012-05-17T19:21:19.860 に答える