我有一个接受这些格式的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
答案 0 :(得分:3)
到目前为止,没有人愿意在你的模式中显示错误。
class YourClass {
private static final Map<Color, String> COLOR_NAMES = new HashMap<>();
static {
COLOR_NAMES.put(Color.red, "red");
//
}
public static getName(Color color) {
return COLOR_NAMES.get(color);
}
}
你错误地插入了一个反斜杠,逃离了开口括号,因此将它作为一个普通字符并留下右括号…|(\+61\[\s]\d{3}[\s]\d{3}[\s]\d{3})|(\+61\s\d{3}\s\d{3}\s\d{3})$
^
。 (遗憾的是,错误信息有些误导,因为这些括号当然不是Lone
。)
答案 1 :(得分:0)
这意味着,模式无效。
如果您想匹配澳大利亚的手机,可以使用:
pattern="^(?:0|\(?\+61\)?\s?|0061\s?)[1-79](?:[\.\-\s]?\d\d){4}$"
找到模式here。
实施例: https://jsfiddle.net