javascript - 验证 10 位数字的字段 javascript

标签 javascript jquery regex forms validation

我有一个字段的以下代码,该字段必须准确填写 10 个数字

$('#input-payment-egn').on('input', function() {

	var input=$(this);
	var is_egn=input.val();
	$("div.wrong-egn").hide();
	var re = /^\d{10}$/;
	var is_egn=re.test(input.val());
	if(is_egn<10){
	$("div.wrong-egn").show();
	}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form id="leasingform">
<div class="form-group required" style="padding-top: 15px;">
    <label class="control-label" for="input-payment-egn"><?php echo $text_egn; ?></label>
        <input type="text" maxlength="10" name="egn" value="" placeholder="Въведете вашето ЕГН" id="input-payment-egn"
                   class="form-control"/>
</div>
<div class="text-danger" id="wrong-egn" style="display: none;">Въведете валидно ЕГН !</div>
</form>

我想在用户输入数字后单击页面上的其他位置时验证输入!我使用了正则表达式(我认为还可以)。你能帮助我吗?谢谢!

最佳答案

这是一个示例解决方案 https://jsfiddle.net/3bgpdp7v/1/

$('#input-payment-egn').keyup(function(e){
  if($(this).val().length === 10){
    e.preventDefault();
    $('#wrong-egn').slideUp();
  } else {
    $('#wrong-egn').slideDown();
  } 	
});
#wrong-egn{
  display: none;
  font-size: 12px;
  color: red;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" maxlength="10" name="egn" value="" placeholder="Въведете вашето ЕГН" id="input-payment-egn" class="form-control"/>
<div id="wrong-egn">Please provide 10digit number.</div>

我使用了 jQuery keyup 事件并检查字符数,而不是 regex

还有一种方法 这是另一种解决方案https://jsfiddle.net/3bgpdp7v/2/

$('#input-payment-egn').keyup(function(e){
	if($(this).val().length === 10)
  	e.preventDefault();
}).focusout(function(){
	if($(this).val().length === 10){
  	$('#wrong-egn').slideUp();
  } else {
  	$('#wrong-egn').slideDown();
  }
});
#wrong-egn{
  display: none;
  font-size: 12px;
  color: red;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" maxlength="10" name="egn" value="" placeholder="Въведете вашето ЕГН" id="input-payment-egn" class="form-control"/>
<div id="wrong-egn">Please provide 10 digit number.</div>

这将在 focusout 上显示消息。

希望这对您有帮助。

关于javascript - 验证 10 位数字的字段 javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45883246/

相关文章:

javascript - Jquery 验证正则表达式中的 "u0080-"和 "u024F"是什么?

python - MongoEngine 抛出异常 TypeError : cannot deepcopy this pattern object

javascript - html5 模式不仅允许数字,还接受所有内容

javascript - 我如何使用 JavaScript 判断 DOM 对象是否在窗口之外?

javascript - 使用选择选项更改多个跨度值

javascript - 根据显示的页面部分更新 JQuery UI slider

javascript - 为什么我的 this.class 总是未使用 jQuery 过滤器定义?

javascript - 正则表达式 - 在第二次出现的字符之间匹配字符串

javascript - 像字典一样按值 Angular 排序的数据结构

javascript - 滚动时如何制作视差侧边栏