javascript - 使用正则表达式只检索 7 位数字的字符串

标签 javascript jquery regex

简而言之,该页面包含大约 10 个 div,每个包含字母和数字,我试图返回所有出现的恰好 7 位数字,但前后可以有其他非数字字符。

例如。

“q1234567”应该返回 1234567

“q1234567q”应该返回 1234567

“q1234567q1234567q12345678q”应该返回 1234567 和 1234567

不应返回“12345678”

更具体地说,一个完整字符串的例子:

q1234567q
q1234567q
q12345678q
q1234567q123456789q123456q1324567q1234567
1234567
1
12
123
1234
12345
q12345q
q1234
12345q
123

我尝试通过正则表达式做到这一点,并得到了

/\d{7}(?=\D|$)/g

但 JavaScript 不能很好地处理 lookbehind。我如何在不涉及全新库的情况下解决这个问题?

最佳答案

这个正则表达式应该可以工作:

/^\D*\d{7}\D*$/

在线演示:http://regex101.com/r/nE5eI6

更新:根据以下经过编辑的问题和评论,您可以使用此正则表达式:

(?:^|\D)(\d{7})(?=\D|$)

并使用匹配组 #1 作为您的输出。

演示:http://regex101.com/r/wL4oW1

关于javascript - 使用正则表达式只检索 7 位数字的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21787603/

相关文章:

javascript - 如何从另一个字符串中提取字符串

javascript - 从完成 API 调用的 Promise 链中返回一个字符串

javascript - hashchange 上的 Jquery 调用函数

javascript - 如何使用 Jquery 在前端使用新记录验证现有记录

javascript - 使用 CryptoJS 将 64 位数字字符串转换为字数组

jQuery - 在远离 .datepicker 的按键上隐藏 jQdialog

java - 用于替换特定位置上的字符串的正则表达式

javascript - JS/jQuery : Popupbox with options

jQuery 按属性值过滤

c# - 在 * 字符正则表达式上拆分字符串