限制文本框模式和验证Jquery和PHP


Restrict Text Box to Pattern and validate Jquery and PHP

我试图设置一个文本框来限制新西兰驾驶执照的格式,所以我一直在寻找regex来验证这一点,但我实际上不确定如何做到这一点。

该字段需要限制为2个字母后面跟着6个数字(AA123456)

到目前为止,我已经想出了这个模式/([A-Za-z]{2}'d{4})/,我从http://www.regexr.com/得到的,但在寻找如何在输入字段中使用正则表达式后,我无法解决。我想让它在输入时验证,所以说他们输入AAB,它不会添加B

我的代码:

$("#licenceNo").keyup(function() {
    var data = $("#licenceNo").val().match(/([A-Za-z]{2}'d{6})/);
}

但我不知道下一步该做什么…

我还想使用PHP验证这个服务器端。我用同样的表达吗?

任何人可以张贴教程的链接吗?我搜索的都是EDU论文

客户端方法可能比服务器端验证更有意义。我想不出为什么在PHP中需要这样做。

这种方法可以让你删除最后一个字符,如果它不匹配你的模式,并将文本框设置为红色。否则,它将被设置为绿色并让您继续键入。

$("#licenseNo").on("change keyup", function() {
    isValid = isValidLicenseNo(this.value);
    if (isValid) {
        $(this).css( "background-color", "green" );
    } else {
        $(this).val($(this).val().slice(0,-1));
        $(this).css( "background-color", "red" );
    }
});
function isValidLicenseNo(text) {
    if(text.length < 2) return text.match(/(^[A-Za-z]{0,1})$/);
    return text.match(/(^[A-Za-z]{2}'d{0,6}$)/);
}

Here's a JS Fiddle

我不得不对你的正则表达式做一些修改。'^'和'$'锚可以防止用户在初始匹配之后无限期地添加字符。小数匹配(''d{0,6}')后的范围有助于在用户仍在键入车牌时进行车牌匹配。要得到一个正确匹配0-1字符的RegEx是很棘手的,所以我作弊了,写了一个单独的RegEx。