Regex 无效的正则表达式:单个量词括号

Regex 无效的正则表达式:单个量词括号,regex,Regex,我有一个html电话模式,可以接受以下格式: +61 x xxxx xxxx, +61xxxxxxxxx, 0x xxxx xxxx, 0xxxxxxxxx, xxxx xxxx, xxxxxxxx, +xx xxx xxx xxx, +xxxxxxxxxxx, 0xxx xxx xxx, 0xxxxxxxxx 几个月前它还在工作,现在我的手机字段突然无法验证。我有一个错误: Pattern attribute value ^(?:0|\(?\+61\)?\s?|0061\s?)[1-79](

我有一个html电话模式,可以接受以下格式:

+61 x xxxx xxxx,
+61xxxxxxxxx,
0x xxxx xxxx,
0xxxxxxxxx,
xxxx xxxx,
xxxxxxxx,
+xx xxx xxx xxx,
+xxxxxxxxxxx,
0xxx xxx xxx,
0xxxxxxxxx
几个月前它还在工作,现在我的手机字段突然无法验证。我有一个错误:

Pattern attribute value ^(?:0|\(?\+61\)?\s?|0061\s?)[1-79](?:[\.\-\s]?\d\d){4}|(\d{4}[\s]\d{4})|(\d{8})|(\d{4}[\s]\d{3}[\s]\d{3})|(\+61\[\s]\d{3}[\s]\d{3}[\s]\d{3})|(\+61\s\d{3}\s\d{3}\s\d{3})$ is not a valid regular expression: Uncaught SyntaxError: Invalid regular expression: /^(?:0|\(?\+61\)?\s?|0061\s?)[1-79](?:[\.\-\s]?\d\d){4}|(\d{4}[\s]\d{4})|(\d{8})|(\d{4}[\s]\d{3}[\s]\d{3})|(\+61\[\s]\d{3}[\s]\d{3}[\s]\d{3})|(\+61\s\d{3}\s\d{3}\s\d{3})$/: Lone quantifier brackets 

也就是说,模式无效

如果您想匹配来自澳大利亚的手机,您可以使用:

pattern="^(?:0|\(?\+61\)?\s?|0061\s?)[1-79](?:[\.\-\s]?\d\d){4}$"
找到模式

例如:

这恰恰意味着,模式无效

如果您想匹配来自澳大利亚的手机,您可以使用:

pattern="^(?:0|\(?\+61\)?\s?|0061\s?)[1-79](?:[\.\-\s]?\d\d){4}$"
找到模式

例如:

到目前为止,没有人愿意指出错误在您的模式中的位置

…|(\+61\[\s]\d{3}[\s]\d{3}[\s]\d{3})|(\+61\s\d{3}\s\d{3}\s\d{3})$
       ^

在这里,您错误地插入了一个反斜杠,使其脱离了开始括号,从而使其成为普通字符,而使结束括号保持孤立。(遗憾的是,错误消息有些误导,因为这些括号当然不是
量词括号

到目前为止,没有人关心显示错误在您的模式中的位置

…|(\+61\[\s]\d{3}[\s]\d{3}[\s]\d{3})|(\+61\s\d{3}\s\d{3}\s\d{3})$
       ^

在这里,您错误地插入了一个反斜杠,使其脱离了开始括号,从而使其成为普通字符,而使结束括号保持孤立。(遗憾的是,错误消息有些误导,因为这些括号当然不是
量词括号

这正是它的意思。这个regexp是无效的。是的,regex有一个明确的问题,如果您不熟悉构建和测试regex表达式的语义,我强烈建议使用expresso()之类的工具来构建和测试regex表达式。看看可视化,您可以清楚地看到它是无效的-我试图修复该模式,请检查,它是否像预期的那样工作?@Phillip Copley-这个可视化根本没有显示手边的表达式是无效的。这正是它的意思。这个regexp是无效的。是的,regex有一个明确的问题,如果您不熟悉构建和测试regex表达式的语义,我强烈建议使用expresso()之类的工具来构建和测试regex表达式。看看可视化,您可以清楚地看到它是无效的-我试图修复该模式,请检查,它是否像预期的那样工作?@Phillip Copley-这个可视化根本没有显示手边的表达式是无效的。