Javascript 需要验证法国车辆编号格式的功能吗

Javascript 需要验证法国车辆编号格式的功能吗,javascript,jquery,regex,Javascript,Jquery,Regex,我需要一个功能,可以检查时,输入字段中键入车牌登记前,车牌是法国车牌 法国版的格式为:AA-123-AA • • • 我想,当我键入例如:12时,我无法进一步查看车牌,因为有错误等。 Thx如需任何帮助您可以将以下内容用于新的非异国情调的法国盘子 HTML: <input id=myInputId> var myString = document.getElementById('myInputId').value; var isPlateOK = /^[A-Z]{2} ?- ?\d

我需要一个功能,可以检查时,输入字段中键入车牌登记前,车牌是法国车牌

法国版的格式为:AA-123-AA

我想,当我键入例如:12时,我无法进一步查看车牌,因为有错误等。


Thx如需任何帮助

您可以将以下内容用于新的非异国情调的法国盘子

HTML:

<input id=myInputId>
var myString = document.getElementById('myInputId').value;
var isPlateOK = /^[A-Z]{2} ?- ?\d{3} ?- ?[A-Z]{2}$/.test(myString);
注:

  • “A”可以,但不是“A”。如果要允许小写,请将
    [A-Z]
    更改为
    [A-Za-Z]
  • 空格是可选的。如果希望它们是必需的,请删除
有关JavaScript中正则表达式的更多详细信息


为防止值开始无效时输入,必须采取不同的方法:

function check(s) { // checks s is a plate id or the start of a plate id
    var toks = s.split('-');
    //console.log(toks);
    switch(toks.length){
        case 3:
        if (!/^[A-Z]{0,2}$/.test(toks[2].trim())) return false;
        case 2:
        if (!/^\d{0,3}$/.test(toks[1].trim())) return false;
        case 1:
        return /^[A-Z]{0,2}$/.test(toks[0].trim());
        default:
        return false;
    }  
}
var oldvalue = '';
$('#plates').keyup(function(){
    if (!check(this.value)) {
        this.value = oldvalue;
    } else {
        oldvalue = this.value;
    }
});

法国版不包含
I
O
U
,也不包含
000
,因此正则表达式为:

^[A-HJ-NP-TV-Z]{2}\s*-\s*(?:00[1-9]|[0-9]{3})\s*-\s*[A-HJ-NP-TV-Z]{2}$

在我们用于验证欧盟国家车辆牌照的欧盟系统中,我们使用此脚本为欧盟国家创建和维护正则表达式。在比利时,客户还必须选择一种标牌:BE(默认)、EU或CD

脚本示例荷兰:

var d = '[0-9]';
var s = '[A-Z]';
var o = '-';
// var p = '\\.';
var t1 = s + s + o + d + d + o + d + d; // AA-99-99
var t2 = d + d + o + s + s + o + d + d; // 99-AA-99
var t3 = s + s + o + d + d + o + s + s; // AA-99-99
var t4 = s + s + o + s + s + o + d + d; // AA-AA-AA
var t5 = d + d + o + s + s + o + s + s; // 99-AA-AA
var t6 = d + d + o + s + s + s + o + d; // 99-AAA-9
var t7 = s + s + o + d + d + d + o + s; // AA-999-A
var t8 = s + o + d + d + d + o + s + s; // A-999-AA
var t9 = d + o + s + s + s + o + d + d; // 9-AAA-99
var string = {'DEFAULT-NL' : '^((' + t1 + ')|(' + t2 + ')|(' + t3 + ')|(' + t4 + ')|(' + t5 + ')|(' + t6 + ')|( ' + t7 + ')|(' + t8 + ')|(' + t9 + '))$'}[id];
return new RegExp(string);

你知道法国车牌有很多可能的格式(有些人有旧车)?很多人都有异国情调的盘子。你最好只检查它不是空的字符串。@dystroy是的,我知道,但我只为新盘子制作我不知道如何使用它…:$@artSx现在清楚了吗?我知道这个JSFIDLE是错误的,但我不知道如何使用你的js。我想很清楚我想用这把小提琴做什么……是的,这是可能的,但我不会这么做:每次你改变要求时,都必须采取不同的路线,而我没有报酬来编写你的整个程序。我将向您展示如何自动更改为大写:如何在onchange函数中使用它?