将输入限制为仅限特定字符和6位数字

时间:2017-04-01 19:58:38

标签: jquery regression

我想将输入限制为仅限一个字符(R)和仅6个数字... 例如:R123896

如果输入长度增加7,它将删除该数字,如果第一个单词不是R,它应该将该字符替换为" R"

我写过这个剧本,但不知道如何前进并将其塑造成我想要的......

$("#consultationident").keyup(function(key){
var txtVal = $(this).val();  
 if(isNumber(txtVal) && txtVal.length>6)
 {
     $(this).val(txtVal.substring(0,6) )
 }
});

请帮忙!

2 个答案:

答案 0 :(得分:0)

使用regular expression是一个想法...

$("#consultationident").keyup(function(key){
  
  // Uppercase the first character.
  var firstChar = $(this).val().substr(0,1).toUpperCase();
  var rest = $(this).val().substr(1);
  
  $(this).val( firstChar + rest );
  
  var txtVal = $(this).val();
  var pattern = /^(R)(\d{6})$/;

  // Check if the value entered fits the pattern.
  if(pattern.test(txtVal)){
    console.log("Value ok");
  }else{
    console.log("Value wrong");
  }
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<input id="consultationident">

答案 1 :(得分:0)

这是使用正则表达式验证输入的代码

 $("#consultationident").keyup(function(key){
    var txtVal = $(this).val();  
    if(txtVal.length>6)
     {
       str =  $(this).val().substring(0,7);

       pattern = /^[a-zA-Z]{1}(\d{6})$/



       if(pattern.test(str)) {
         str = str.replace(/^[a-zA-Z]/,"R")   // Replace any character with "R"
         console.log(str);
    }
      else {
         console.log("invalid input");
      }
   }
});