相关疑难解决方法(0)

用于电话号码验证的全面正则表达式

我正在尝试整合一个全面的正则表达式来验证电话号码.理想情况下它会处理国际格式,但它必须处理美国格式,包括以下内容:

  • 1-234-567-8901
  • 1-234-567-8901 x1234
  • 1-234-567-8901 ext1234
  • 1(234)567-8901
  • 1.234.567.8901
  • 1/234/567/8901
  • 12345678901

我将回答我目前的尝试,但我希望有人能有更好的和/或更优雅的东西.

regex validation phone-number

901
推荐指数
22
解决办法
88万
查看次数

是否存在将标准化电话号码存储在数据库中的标准?

在数据库字段中存储电话号码的良好数据结构是什么?我正在寻找足够灵活的东西来处理国际号码,还有一些能够有效查询号码各个部分的东西.

编辑:只是为了澄清这里的用例:我目前将数字存储在一个varchar字段中,并在客户输入时将其保留.然后,当代码需要该数字时,我将其标准化.问题是,如果我想查询几百万行来查找匹配的电话号码,它涉及一个功能,如

where dbo.f_normalizenum(num1) = dbo.f_normalizenum(num2)
Run Code Online (Sandbox Code Playgroud)

这是非常低效的.当只是一个varchar字段时,寻找像区域代码之类的东西的查询变得非常棘手.

[编辑]

人们在这里提出了很多好建议,谢谢!作为一个更新,这里是我现在正在做的事情:我仍然在varchar字段中存储与输入完全相同的数字,但是在查询时没有规范化事物,我有一个触发器,可以在插入记录时完成所有工作或更新.所以我对我需要查询的任何部分都有内联或重要内容,并且这些字段被编入索引以使查询运行得更快.

database

90
推荐指数
7
解决办法
5万
查看次数

标签 统计

database ×1

phone-number ×1

regex ×1

validation ×1