3

正規表現で解析しようとしている次の文字列があります。

"id=12345,123456,1234567"

文字列はハッシュ値の一部であり、次のいずれかの方法で表示されます。

"#id=12345" // single value
"#id=12345,123456,1234567" // multiple values
"#id=12345,123456,1234567&Another=Value" // one or more values followed by an ampersand.

5 文字または 6 文字の数字のみが有効であるため、結果は次のような配列になります。

['12345', '123456']

これは私が現在持っている正規表現ですが、7桁の数字も含まれています(上記の最後のもの):

"id=12345,123456,1234567".match(/([0-9]{5,6})+/g); 

その結果:

["12345", "123456", "123456"] // Should only have two items

数字が 6 桁を超えないようにするにはどうすればよいですか?

4

1 に答える 1

5

最も簡単なのは、単語の境界を使用することです。

/(\b[0-9]{5,6}\b)+/g

そして、なぜ+ここで量指定子を使用しているのかわかりません...

/\b[0-9]{5,6}\b/g

それで十分なはずです。

ちなみに単語境界は 、 、 の間で一致\w\Wします。\W\w\w$^\w

于 2013-09-24T09:00:41.010 に答える