我需要找一个测试输入字符串包含10个数字字符的正则表达式,同时仍然允许字符串中的其他字符。
我将在后期处理中剥离所有非数字字符,但我需要正则表达式进行客户端验证。
例如,这些都应该匹配:
但这些不应该:
这看起来应该很简单,但我无法理解。
答案 0 :(得分:13)
/^\D*(\d\D*){10}$/
基本上,匹配任意数量的非数字字符,后跟一个数字,后跟任意数量的非数字字符,恰好是10次。
答案 1 :(得分:0)
可能是一种更简单的方法,但是应该这样做。
/^([^\d]*\d){10}[^\d]*$/
如果你首先删除所有非数字字符,那么正则表达式会更容易处理,然后测试结果。然后这是一个简单的
/^\d{10}$/
答案 2 :(得分:0)
^\D*(\d\D*){10}\D*$