Javascript 使用正则表达式的量化器错误无效(英国电话号码)

Javascript 使用正则表达式的量化器错误无效(英国电话号码),javascript,jquery,regex,validation,Javascript,Jquery,Regex,Validation,使用此正则表达式时出现错误“无效量词”: ^(((\+44\s?\d{4}|\(?0\d{4}\)?)\s?\d{3}\s?\d{3})|((\+44\s?\d{3}|\(?0\d{3}\)?)\s?\d{3}\s?\d{4})|((\+44\s?\d{2}|\(?0\d{2}\)?)\s?\d{4}\s?\d{4}))(\s?\#(\d{4}|\d{3}))?$ 事实上,我从regex库中尝试了几个英国电话号码regex,但我总是遇到同样的错误。如果有人能帮忙,我将不胜感激 如果只运行以下命

使用此正则表达式时出现错误“无效量词”:

^(((\+44\s?\d{4}|\(?0\d{4}\)?)\s?\d{3}\s?\d{3})|((\+44\s?\d{3}|\(?0\d{3}\)?)\s?\d{3}\s?\d{4})|((\+44\s?\d{2}|\(?0\d{2}\)?)\s?\d{4}\s?\d{4}))(\s?\#(\d{4}|\d{3}))?$

事实上,我从regex库中尝试了几个英国电话号码regex,但我总是遇到同样的错误。如果有人能帮忙,我将不胜感激

如果只运行以下命令,则会出现相同的错误:

new RegExp("^(((+44\s?\d{4}|(?0\d{4})?)\s?\d{3}\s?\d{3})|((+44\s?\d{3}|(?0\d{3})?)\s?\d{3}\s?\d{4})|((+44\s?\d{2}|(?0\d{2})?)\s?\d{4}\s?\d{4}))(\s?#(\d{4}|\d{3}))?$");
。。。因此,在正确使用regexp之前,最好先忘掉jQuery和表单验证器

JavaScript控制台说:

错误:无效的量词 +44s{4}{124;(0d{4})s{3}s{3}(+44s{3}}(+0d{3})s{3})s{3}s}s{4}(+44s{2}(+0d})s{4}(0d})s{$

+
量词表示一个或多个
用于修改以前的规则,例如:

A+ --> One or more A's
\d+ --> One or more digits
所以你需要一些东西来量化:

(((+ --> Nothing to modify

如果只运行以下命令,则会出现相同的错误:

new RegExp("^(((+44\s?\d{4}|(?0\d{4})?)\s?\d{3}\s?\d{3})|((+44\s?\d{3}|(?0\d{3})?)\s?\d{3}\s?\d{4})|((+44\s?\d{2}|(?0\d{2})?)\s?\d{4}\s?\d{4}))(\s?#(\d{4}|\d{3}))?$");
。。。因此,在正确使用regexp之前,最好先忘掉jQuery和表单验证器

JavaScript控制台说:

错误:无效的量词 +44s{4}{124;(0d{4})s{3}s{3}(+44s{3}}(+0d{3})s{3})s{3}s}s{4}(+44s{2}(+0d})s{4}(0d})s{$

+
量词表示一个或多个
用于修改以前的规则,例如:

A+ --> One or more A's
\d+ --> One or more digits
所以你需要一些东西来量化:

(((+ --> Nothing to modify
使用这个,它来自

使用这个,它来自


+1用于出色的分析。但您忘了解释如何在输入字符串中搜索实际的加号。最后一部分是加号应该转义-即
(((\+-->搜索加号。
@Spudley没有忘记,我只是不知道该表达式应该匹配什么。英国电话号码似乎比西班牙电话号码复杂得多。
+44
部分是国际部分,因此要在同一位置找到西班牙号码需要
+34
。查询但过于复杂-他考虑到人们使用的所有不同间距,这增加了许多不必要的复杂性(应该先做一个
stru替换(“”,,$input)
).1,用于出色的分析。但是您忘了解释如何在输入字符串中搜索实际的加号。最后一部分是加号应该转义-即
(((\+-->搜索加号。
@Spudley没有忘记,我只是不知道该表达式应该匹配什么。英国电话号码似乎比西班牙电话号码复杂得多。
+44
部分是国际部分,因此要在同一位置找到西班牙号码需要
+34
。查询但是过于复杂了——他考虑了人们使用的所有不同的间隔变量,这增加了很多不必要的复杂性(应该先做一个
str_替换(“”,,$input)
)。