法国车牌号码的HTML5输入模式

时间:2016-06-03 09:51:58

标签: html5 design-patterns

我正在搜索html模式以检查包含车牌号码的输入字段。

问题是我们有很多可能的模式:

  • AA-123-ZZ
  • 1234-AZ-09
  • 123-ABC-90
你可以帮我写一下这样的模式吗? 如果用户可以写下 - 或者不是。

,那就是蛋糕上的樱桃

感谢' S

3 个答案:

答案 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:

HTML5输入模式

  

pattern属性指定一个正则表达式,用于检查元素的值。

<input type="text" name="licence" pattern="(\w+-\w+-\w+)"title="Your input">

Javascript Regex

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.
}