我试图用正则表达式解析以下字符串:
"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 位的数字?
最佳答案
最简单的方法是使用单词边界:
/(\b[0-9]{5,6}\b)+/g
而且我不确定您为什么要在这里使用 +
量词...
/\b[0-9]{5,6}\b/g
这应该足够了。
单词边界在 \w\W
、\W\w
、\w$
和 ^\w< 之间匹配
顺便说一下。
关于javascript - 如何修改这个正则表达式来检测和忽略太多字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18977067/