我正在尝试创建一个取决于其格式的护照验证,我创建了2个输入栏。第一个输入栏只允许用户输入2个字母而第二个输入栏只允许输入7个数字。什么javascript函数验证用户输入2个字母只有数字而不是输入7个数字而不是字母在其受尊重的输入栏上
这是我到目前为止所拥有的
UITextField
答案 0 :(得分:2)
下面的代码显示输入是否为有效输入的警报。如果没有,则警报显示为false。将警报替换为您的代码以显示消息或其他内容。
使用html的maxlength
属性获取最大输入字符
$(document).ready(function(){
$("#submitButton").click(function(){
alert(/^\d+$/.test($('#passportNumber').val())); // 2 digit number validation
alert(/^[a-zA-Z]+$/.test($('#passportSeries').val())); // 7 character validation
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<!doctype html>
<html>
<body>
<div class="form-group">
<label for="passportno" class="control-label col-xs-4">
<p class="left">Passport No.</p>
</label>
<input maxlength="2" id="passportNumber" class="form-control" placeholder=""required/> -
<input maxlength="7" id="passportSeries" class="form-control" placeholder=""required/>
<input type="button" value="submit" id="submitButton" />
</div>
</script>
</body>
</html>
答案 1 :(得分:0)
以下是其中一种可能方式。
$("input").on("keyup input", function() {
var $this = $(this);
var val = $.trim( $this.val() ) || "";
if (this["name"] === "passportno") {
val = val.replace(/[^\d]/g, '');
} else {
val = val.replace(/[^a-z]/gi, '');
}
$this.val( val );
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="form-group">
<label for="passportno" class="control-label col-xs-4"><p class="left">Passport No.</p></label>
<input size="1" name="passportno" class="form-control" placeholder="" required="" maxlength="2" /> -
<input size="14" name="passportletters" class="form-control" placeholder="" required="" maxlength="7" />
</div>
答案 2 :(得分:0)
我还没有测试过,但我认为Sarjan Desai的答案接受1到2个字母和1到7个数字。您可以在两个regexp中指定匹配长度:
/^\d+$/
将是/^\d{2}$/
,而/^\[a-zA-Z]+$/
将是/^\[a-zA-Z]{7}$/
修改后的代码:
$(document).ready(function(){
$("#submitButton").click(function(){
alert(/^\d{2}$/.test($('#passportNumber').val()));
alert(/^[a-zA-Z]{7}$/.test($('#passportSeries').val()));
});
});