【发布时间】:2022-06-16 10:18:52
【问题描述】:
我需要检查电话号码是否为以下格式
+1(111)11-1111
(111)11-1111
1111111111
我正在使用这个逻辑,但没有得到我想要的
DECLARE @Customers TABLE (PhoneNumber VARCHAR(20))
INSERT @Customers
VALUES
('+1(111)11-1111'),
('1111111111'),
('11(11)111111'),
('11abcd1111'),
(')123(45678-9-0-'),
('(111)11-1111')
SELECT PhoneNumber
FROM @Customers
WHERE PhoneNumber NOT LIKE '%[^0-9()-]%'
--AND REPLACE(REPLACE(REPLACE(PhoneNumber, '(', ''), ')', ''), '-', '') LIKE '[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'
AND LEN(REPLACE(REPLACE(REPLACE(REPLACE(PhoneNumber, '(', ''), ')', ''), '-', ''),'+','')) = 10 -- Alternate test
预期结果
+1(111)11-1111'
1111111111
(111)11-1111
我得到的结果
1111111111
11(11)111111
)123(45678-9-0-
【问题讨论】:
-
你创建了一堆 javascript sn-ps - 没有一个工作 - 因为它们不是 javascript - 请删除它们。
标签: sql sql-server