1

我有一个文本<input>maxlength="6"但我想检查前 4 个字符是否为数字,后 2 个字符是否为字母。

我有这个代码:

$("input[id='post']").keyup(function count() {
   //what goes here?
});

但我真的不知道如何继续下去。

4

4 回答 4

4

您可以使用 RegEx 来执行此操作

$("input[id='post']").keyup(function count() {
    var input = this.value;
    var regex = new RegExp(/^[0-9]{4}[a-z]{2}$/i);
    console.log(regex.test(input));
});

[0-9]{4}- 检查 0-9 之间的四位数字。

[a-z]{2}- 检查 az 之间的两个字母。最后的i标志使检查不区分大小写。

于 2013-10-07T10:12:50.377 回答
2

您可以使用正则表达式:

https://developer.mozilla.org/en/docs/Web/JavaScript/Guide/Regular_Expressions

就像是:

$("input[id='post']").keyup(function count() {
    var valid = /^\d{4}[a-zA-Z]{2}$/.test(this.value);
});

因此,valid如果true输入符合您的条件,false否则就是这样。

于 2013-10-07T10:12:08.453 回答
0

Valid如果它匹配所需的模式,这将记录到控制台:

$('#post').keyup(function() {
    if (/^\d{4}[a-zA-Z]{2}$/.test(this.value)) {
         console.log("Valid");
    }
});
于 2013-10-07T10:12:45.727 回答
0

您可以使用这样的正则表达式^[0-9]{4}[a-z]{2}$并创建一个key up/down函数来使用它

请参阅此链接以测试使用情况

演示测试和正则表达式解释

于 2013-10-07T10:13:56.513 回答