如何解决我想在 Microsoft SQL Server 中编写一个函数来验证任何英国电话号码,如果有效则标记 1,如果无效则标记 0
这是我的代码:
FUNCTION [dbo].[Vmobile](@mobileno VARCHAR(50))
--Returns true if the string is a valid mobile no.
RETURNS bit
AS
BEGIN
DECLARE @valid bit
IF @mobileno IS NOT NULL
SET @valid = 0
IF @mobileno like '^(?:0|\+?44)(?:\d\s?){9,10}$'
SET @valid=1
RETURN @valid
END
电话号码可以是任何英国格式,但应支持所有英国电话号码。 E
g :
(415) 555-0132
+44 313314332
098 765 1234
+447975777666
07975777666
xxx-xxx-xxxx
01332 412251
01332 412 251
+44 1332 412251
其中 X 可以是任意数字。 可选的 Plus 只能在第一位置使用。 如果在开头输入零,则零后应有 9 或 10 位数字。 国家代码可以是可选的
解决方法
看来您必须重新开始。您似乎在使用正则表达式来测试电话号码,而 SQL Server LIKE operator 不支持正则表达式。
如果您使用的是支持正则表达式的 DBMS,如果您链接到正则表达式文档,并且如@Gordon Linoff 所建议的那样,解释您尝试匹配的模式,那么您将更幸运地获得有用的答案.另外,请编辑标签not以提及 SQL,因为此功能不是由 SQL 标准定义的,而是添加您正在使用的特定 DBMS。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。