如何使用正则表达式来判断字符串是否有10位数?

时间:2010-01-06 20:20:40

标签: asp.net regex validation

我需要找一个测试输入字符串包含10个数字字符的正则表达式,同时仍然允许字符串中的其他字符。

我将在后期处理中剥离所有非数字字符,但我需要正则表达式进行客户端验证。

例如,这些都应该匹配:

  • 1234567890
  • 12-456879x54
  • 321225 -1234AAAA
  • xx1234567890

但这些不应该:

  • 123456789(数字不够)
  • 12345678901(数字太多)

这看起来应该很简单,但我无法理解。

3 个答案:

答案 0 :(得分:13)

/^\D*(\d\D*){10}$/

基本上,匹配任意数量的非数字字符,后跟一个数字,后跟任意数量的非数字字符,恰好是10次。

答案 1 :(得分:0)

可能是一种更简单的方法,但是应该这样做。

/^([^\d]*\d){10}[^\d]*$/

如果你首先删除所有非数字字符,那么正则表达式会更容易处理,然后测试结果。然后这是一个简单的

/^\d{10}$/

答案 2 :(得分:0)

^\D*(\d\D*){10}\D*$