如何修改此正则表达式以检测和忽略太多字符?

TJ.*_*TJ. 3 javascript regex

我有以下字符串,我试图用正则表达式解析:

"id=12345,123456,1234567"
Run Code Online (Sandbox Code Playgroud)

该字符串是哈希值的一部分,可以通过以下方式之一显示:

"#id=12345" // single value
"#id=12345,123456,1234567" // multiple values
"#id=12345,123456,1234567&Another=Value" // one or more values followed by an ampersand.
Run Code Online (Sandbox Code Playgroud)

只有5或6个字符的数字才有效,因此结果应该是如下数组:

['12345', '123456']
Run Code Online (Sandbox Code Playgroud)

这是我目前的正则表达式,但它还包括7位数字(上面的最后一个):

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

导致:

["12345", "123456", "123456"] // Should only have two items
Run Code Online (Sandbox Code Playgroud)

我该怎么做才能防止大于6位的数字?

Jer*_*rry 5

最简单的方法是使用单词边界:

/(\b[0-9]{5,6}\b)+/g
Run Code Online (Sandbox Code Playgroud)

而且我不确定你为什么要在+这里使用量词...

/\b[0-9]{5,6}\b/g
Run Code Online (Sandbox Code Playgroud)

那应该够了.

单词边界匹配之间\w\W,\W\w,\w$并且^\w顺便说一句.