2 回答
TA贡献1803条经验 获得超3个赞
参考了Twisty 的JS,发现应该如下图所示:
if(docTypeVal == "PASS") {
$(this).attr("maxlength","8");
var term = $(this).val();
var re = /^[a-zA-Z]{1}\d{0,7}$/i;
if (re.test(term)) {
$(this).removeClass("invalid");
return true;
} else {
$(this).addClass("invalid");
$(this).val(term.replace(term.charAt(term.length-1),
function(str) {
alert('You typed " ' + str + ' ".\n\nPlease use correct format.');
return '';
}));
return false;
}
}
TA贡献2016条经验 获得超9个赞
您可以使用 1 个正则表达式进行测试。
/^[a-z]?\d{0,7}$/i
这种模式看起来A9最多A9999999。它将失败AA或99。
示例:https : //jsfiddle.net/Twisty/awL0onjg/20/
JavaScript
$(function() {
var docTypeVal = $("#docType").val();
$('#docId').keyup(function(e) {
var exc = [
11, // Tab
127, // Del
];
if (exc.indexOf(e.which) > -1) {
return true;
}
var term = $(this).val();
var re = /^[a-z]?\d{0,7}$/i;
console.log("Testing:", term, re.test(term));
if (re.test(term)) {
$(this).removeClass("invalid");
return true;
} else {
$(this).addClass("invalid");
}
});
});
.keydown()如果您想防止用户在该模式之外输入,请考虑使用。查看更多。
添加回答
举报