我试图用NANP格式验证电话号码。
我正在使用此代码
patindex('+1[2–9][0-9][0-9][2–9][0-9][0-9][0-9][0-9][0-9][0-9]', n)
但是没有按预期工作,一些应该有效的数字(如+14104536330)与表达式不匹配。
我已使用示例代码创建了SQL Fiddle。 我的patindex表达有什么问题?
答案 0 :(得分:7)
将您的字符串复制到十六进制编辑器,[2-9]
显示为:
+1[2â9][0-9][0-9][2â9][0-9][0-9][0-9][0-9][0-9][0-9]
2到9之间的十六进制代码为E2 80 93
,即UTF-8 for "en dash"。所以问题基本上就是你已经进入了一个有趣的破折号版本。当您复制/粘贴Microsoft自动更正环境(如Outlook,Word或Excel)时,可能会发生这种情况。自动更正将以无声方式将破折号升级为漂亮的破折号。