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 回答