是否可以将具有任意长度的字符串与电话号码列表进行匹配?我已经看过电话号码验证正则表达式,如果要按顺序提供字符串,我更希望匹配它。

说像这样:

regexStr = /5542215555/gi

// All these strings should pass
phoneNums = [
  '(554) 221-5555'
  '5542215555x645115',
  '554-221-5555',
  '55-422155-55',
  'abc 554 def 221 ghi 5555'
]

// These would fail, due to numbers not present / not in order
nonMatches = [
  '(554) 331-5555'
  '5542205555x645115',
  '554-221-4444',
  '554-221-222-4444',
  'abc 554 def 112 ghi 5555'
]


我不必关心数字之间是否包含多个字符或它们是什么字符,我只想确保字符串中的数字具有正确顺序的所有数字。

我没有找到与该用例相匹配的问题,但仔细阅读后,我相信branch reset group可能是我想要的东西,尽管实现看起来很复杂。除此之外,我不认为JS通过该页面的分支重置组示例正确地处理了它们。

通过JS的Regex实现,这可能/可行吗?

最佳答案

当然

/5\D*5\D*4\D*2\D*2\D*1\D*5\D*5\D*5\D*5/gi


Regex101

或者,如果您想要不那么草率的东西:/5\D{0,3}5\D{0,3}4\D{0,5}2\D{0,3}2\D{0,3}1\D{0,5}5\D{0,3}5\D{0,3}5\D{0,3}5/gi

10-04 11:12