我有以下字符串,我试图用正则表达式解析:
"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位的数字?
答案 0 :(得分:5)
最简单的方法是使用字边界:
/(\b[0-9]{5,6}\b)+/g
我不确定你为什么在这里使用+
量词......
/\b[0-9]{5,6}\b/g
这应该足够了。
顺便提一下,\w\W
,\W\w
,\w$
和^\w
之间的字词边界匹配。