护照验证

时间:2015-09-27 07:41:32

标签: javascript jquery html

我正在尝试创建一个取决于其格式的护照验证,我创建了2个输入栏。第一个输入栏只允许用户输入2个字母而第二个输入栏只允许输入7个数字。什么javascript函数验证用户输入2个字母只有数字而不是输入7个数字而不是字母在其受尊重的输入栏上

这是我到目前为止所拥有的

UITextField

3 个答案:

答案 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)

以下是其中一种可能方式。

  • 将maxlength设置为您的输入
  • 您的输入具有唯一的名称(不一样)
  • 由于我没有看到要验证的按钮,我使用了keyup,输入(处理复制+粘贴等)。

$("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()));
    });
});