2010-03-08 277 views
1

在我的应用我想验证的电话号码,我怎么能写的电话号码一样正则表达式。电话号码验证?

040-23357399或04023357399 91-40-23357399或914023357399 08518-2814655或085182814655 91 -8518-2814655或9185182814655

这是我的电话号码,我怎么能写这个

+1

你到目前为止做了什么?你有没有看过网上的各种正则表达式网站?虽然有人会给你一个答案(因为积分很好,回答问题很好),如果你先告诉我们你先试过什么,那么通常会更好,这样你就可以从中学到一些东西,以便以后可以教别人。 – JasCav 2010-03-08 05:00:05

+1

Dupe:http://stackoverflow.com/questions/123559/a-comprehensive-regex-for-phone-number-validation和其他人。 – 2010-03-08 05:01:10

+0

而且还附近dup http://stackoverflow.com/questions/1547920/ – 2010-03-08 05:50:15

回答

2

验证意味着拒绝,你的用户会发现,恼人的。更好的选择是由第一汽从字符串中的所有非数字字符,然后检查长度和初始数字VS一些简单的规则来接受尽可能:

  • 如果11位数字,并用1开始,剥去第一位数字。
  • 如果10位数字接受,如果它以2-9开头。
  • 如果12-14位数字接受,如果以有效的国家代码开头。
  • 废弃其他所有东西。

这比通过尝试强制用户转换为特定格式并使更简单,更快速的验证代码更多。然后,只要重新显示它,就可以很好地对其进行格式化。

+0

不错的想法...但是,如果我们想在客户端检查它呢? – HotTester 2010-03-08 05:34:47

+0

@HotTester仍然剥离非数字并通过规则检查。您可以编写客户端JavaScript以使用ASP.Net中的CustomValidator控件。 – 2010-03-08 05:46:47

1

为了表达更指this

另一个去OD链接this

还要检查这个正则表达式:

^\D?(\d{3})\D?\D?(\d{3})\D?(\d{4})$