我正在搜索html模式以检查包含车牌号码的输入字段。
问题是我们有很多可能的模式:
感谢' S
答案 0 :(得分:1)
怎么样:
pattern="^[A-Z0-9]{1,4}-?[A-Z0-9]{1,4}-?[A-Z0-9]{1,4}$"
3组A-Z / 0-9(1到4个符号),由(可能缺失)超群分隔。
编辑:如果您希望每个组仅包含字母或仅包含数字,则模式将如下所示:
pattern="^([A-Z]{1,4}|[0-9]{1,4})-?([A-Z]{1,4}|[0-9]{1,4})-?([A-Z]{1,4}|[0-9]{1,4})$"
此外,Paul McCombie在下面的回答中包含对车牌中未使用的字符的修正,您可能也想看一下。
<强>更新强>
pattern="^([A-HJ-NP-TV-Z]{2}|[0-9]{3,4})-?([A-HJ-NP-TV-Z]{2,3}|[0-9]{3})-?([A-HJ-NP-TV-Z]{2}|[0-9]{2})$"
答案 1 :(得分:1)
这应该涵盖指定的三个输入选项:
<form action="carCheck.asp" method="post">
Number Plate: <input type="text" name="number plate" pattern="^([A-Za-z]{2}-?[0-9]{3}-?[A-Za-z]{2})?([0-9]{4}-?[A-Za-z]{2}-?[0-9]{2})?([0-9]{3}-?[A-Za-z]{3}-?[0-9]{2})?$" title="French Number Plate">
<input type="submit">
</form>
编辑:还值得考虑的是法国号牌(I,O,U)中的限制/未使用字符......
pattern="^((?![IOUiou])[A-Za-z]{2}-?[0-9]{3}-?(?![IOUiou])[A-Za-z]{2})?([0-9]{4}-?(?![IOUiou])[A-Za-z]{2}-?[0-9]{2})?([0-9]{3}-?(?![IOUiou])[A-Za-z]{3}-?[0-9]{2})?$"
编辑:上面的第二个模式允许小写字母和大写字母。
这应包括:
Aa-999-Aa和Aa999Aa
9999-Aa-99和9999Aa99
999-AaA-99和999AaA99
答案 2 :(得分:0)
您的问题有2种解决方案需要Regex:
pattern属性指定一个正则表达式,用于检查元素的值。
<input type="text" name="licence" pattern="(\w+-\w+-\w+)"title="Your input">
var re = /(\w+-\w+-\w+)/;
var str = '123-ABC-90';
var m;
if ((m = re.exec(str)) !== null) {
if (m.index === re.lastIndex) {
re.lastIndex++;
}
// View your result using the m-variable.
// eg m[0] etc.
}