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