我有一个要求,我们有一个名为地址的字段。在此字段中,我们可以允许使用字母,数字和一些特殊字符。以下是这些特殊字符的列表。
我可以想到一种方法是创建一个存储每个允许字符的ASCII的表,然后比较字符串的每个字符并只获取允许的字符。
有人能建议更好的方法吗?任何帮助将非常感激。以下是允许的字符列表:
a-z,0-9,A-Z,':; @<>。& =()%/〜-_!#$®(空格)
答案 0 :(得分:-1)
您可以在SQL中使用LIKE
与否定匹配[^...]
,即使它在前端的工作也更好。这是一个例子:
DECLARE @Test TABLE (
String nvarchar(100)
)
INSERT INTO @Test
VALUES (N'123 Fake St'), (N'??? unknown street')
SELECT String,
CASE
WHEN String LIKE '%[^a-zA-Z0-9'':;@<>.&=()%/~-_!#$® ]%' THEN 'Has Invalid Character'
ELSE 'Valid'
END
FROM @Test
P.S。:您确定具有版权特征的地址有效吗?