我需要一个可以在车牌是法国车牌之前在输入字段中输入车牌注册时检查的功能
法式板的格式为:AA - 123 - AA
我想,当我输入例如:12 时,我不能更进一步,因为有错误等。
感谢任何帮助
我需要一个可以在车牌是法国车牌之前在输入字段中输入车牌注册时检查的功能
法式板的格式为:AA - 123 - AA
我想,当我输入例如:12 时,我不能更进一步,因为有错误等。
感谢任何帮助
您可以将以下内容用于新的非异国情调的法国盘子。
HTML:
<input id=myInputId>
Javascript:
var myString = document.getElementById('myInputId').value;
var isPlateOK = /^[A-Z]{2} ?- ?\d{3} ?- ?[A-Z]{2}$/.test(myString);
备注:
[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);