我希望从我的输入文本中替换任何不是护照格式(A9999999)的字符。我写了以下内容(此处为 jsfiddle):
HTML
Doc Type <input id='docType' value = 'PASS'/> <br>
Doc ID <input id='docId'/>
JS:
$(document).ready(function () {
var docTypeVal = $("#docType").val();
$('#docId').keyup(function() {
if(docTypeVal == "PASS") {
var $th = $(this);
$th.attr("maxlength","8");
if($th.val().length <= 1) {
$th.val().replace(/[^a-zA-Z]/g, function(str) {
alert('You typed " ' + str + ' ".\n\nPlease use correct format.');
return '';
})
}
else if($th.val().length <= 8 && $th.val().length > 1) {
$th.val().replace(/^(?!.*^([a-zA-Z]){1}([0-9]){7}$)/, function(str) {
alert('You typed " ' + str + ' ".\n\nPlease use correct format.');
return '';
})
}
}
});
});
但是,首先,这不会替换任何字符(错误/正确)。其次,它会在我输入第二个字符的那一刻发出警报。如果它是字母表,它应该接受第一个字符(否则替换),从第二个到第 8 个字符它应该只接受数字(否则替换)。
繁星点点滴滴
慕沐林林
相关分类