我正在尝试使用 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 表达式有什么问题?
我正在尝试使用 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 表达式有什么问题?
将您的字符串复制到十六进制编辑器,并[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 的 "en dash"。所以问题基本上是你输入了一个有趣的破折号版本。当您从 Microsoft 自动更正环境(如 Outlook、Word 或 Excel)中复制/粘贴时,可能会发生这种情况。自动更正会默默地将您的破折号升级为好看的破折号。