3

我正在尝试使用 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 表达式有什么问题?

4

1 回答 1

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 的 "en dash"。所以问题基本上是你输入了一个有趣的破折号版本。当您从 Microsoft 自动更正环境(如 Outlook、Word 或 Excel)中复制/粘贴时,可能会发生这种情况。自动更正会默默地将您的破折号升级为好看的破折号。

于 2015-06-07T19:54:58.503 回答