javascript - 如何修改这个正则表达式来检测和忽略太多字符?

标签 javascript regex

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

"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/

相关文章:

ruby - 如何在使用 ruby​​/watir 排除随机变量的同时验证网络文本

regex - 如何在 PowerShell 中使用变量作为正则表达式的一部分

Java 正则表达式匹配组为空,即使它匹配

javascript - 通过socket从js客户端向py服务器发送数据不起作用

javascript - 用于解析的 Selenium-webdriver (Ruby)

javascript - 使用函数将值传递到 jQuery UI 对话框

javascript - JQuery 改进 animation() 性能

javascript - 在 Google map API 中向圈子添加文本不起作用

javascript - 需要在 jquery 验证插件中更改电子邮件正则表达式

javascript - 正则表达式匹配第一个 '&' 之前的所有 '?'