禁止文本框验证中的特殊字符

时间:2015-01-09 13:21:08

标签: javascript jquery html

我有javascript代码,其中验证不允许在文本框中包含超过20个字符。但是,我也想在验证中禁止使用特殊字符;如何实现这一目标。

这是我目前的验证码:

<script type="text/javascript" src="https://code.jquery.com/jquery-1.8.2.js">
/script>
<script type='text/javascript'>
$(function()
{ $('#QI4562040').keyup(function() 
{
  var desc = $('#QI4562040').val(); 
  var len = desc.length;
   if       (desc.length >= 10) 
   { 
      this.value = this.value.substring(0, 10);
    } $('#spntxt').text(10 - len + ' Characters Left');
  }); 
}); </script>

4 个答案:

答案 0 :(得分:1)

尝试下面的脚本,这将不允许特殊的章程# $ % ^ & * ( )

function validate() {
    var element = document.getElementById('input-field');
    element.value = element.value.replace(/[^a-zA-Z0-9@]+/, '');
};
<input type="text" id="input-field" onkeyup="validate();"/>
        

答案 1 :(得分:0)

您必须使用按键事件

<input type="text" onkeypress="return isValidCharacter(event)" />

并定义javascript事件,验证可以使用正则表达式

function isValidCharacter(e) {  
var key;
document.all ? key = e.keyCode : key = e.which; 
var pressedCharacter = String.fromCharCode(e)   
var regExp = /^[a-zA-ZÁÉÍÓÚáéñíóú ]*$/; 
return regExp.test(pressedCharacter); }

如果方法返回true,则将打印字符

答案 2 :(得分:0)

我只是使用您的代码并修改:

$(function()
{ $('#QI4562040').keyup(function() 
{
  var desc = $('#QI4562040').val(); 
  var lastChar = desc.slice(-1);
  var spc = !((lastChar.charCodeAt()>=48&&lastChar.charCodeAt()<=57)||(lastChar.charCodeAt()>=65&&lastChar.charCodeAt()<=90)||(lastChar.charCodeAt()>=97&&lastChar.charCodeAt()<=122));

   if (desc.length >= 10 || spc) 
   { 
      this.value = this.value.substring(0, desc.length-1);
   } $('#spntxt').text(10 - len + ' Characters Left');
  }); 
}); 

答案 3 :(得分:0)

对于输入长度,请使用Html5最大长度属性

$(function(){
  $('#QI4562040').keyup(function(){
    var input_val = $(this).val();
    var inputRGEX = /^[a-zA-Z0-9]*$/;
    var inputResult = inputRGEX.test(input_val);
    if(!(inputResult))
    {     
      this.value = this.value.replace(/[^a-z0-9\s]/gi, '');
    }
    $('#spntxt').text(10 - input_val.length + ' Characters Left');
  });
});
<input type='text' name='' id='QI4562040' maxlength='10'/>
<div id='spntxt'></div>

<script type="text/javascript" src="https://code.jquery.com/jquery-3.3.1.slim.min.js"></script>