除文本框中的空格外,仅允许使用特殊字符

时间:2014-06-04 07:02:33

标签: javascript validation

我有一个输入文本字段,其中应用了一些验证。用户无法在字段中输入数字和特殊字符。一切都很好但我想在两个词之间留出空间。怎么做。

这是代码......

<input type="text" id="text1" onKeyPress="return IsAlpha(event);"/>

        var specialKeys = new Array();
    specialKeys.push(8); //Backspace
    specialKeys.push(9); //Tab
     specialKeys.push(32); //Tab
    specialKeys.push(46); //Delete
    specialKeys.push(36); //Home
    specialKeys.push(35); //End
    specialKeys.push(37); //Left
    specialKeys.push(39); //Right
    function IsAlphaNumeric(e) {
        var keyCode = e.keyCode == 0 ? e.charCode : e.keyCode;
        var ret = ((keyCode >= 65 && keyCode <= 90) || (keyCode >= 97 && keyCode <= 122) || (specialKeys.indexOf(e.keyCode) != -1 && e.charCode != e.keyCode));
        document.getElementById("error").style.display = ret ? "none" : "inline";
        return ret;
    }

2 个答案:

答案 0 :(得分:0)

在Jquery中,您可以使用正则表达式执行此操作:

$('.test').keyup(function() {

     var $th = $(this);

     $th.val( $th.val().replace(/[^0-9' ]+( [0-9' ]+)*$/g, function(str) 
      {  

       return ''; 

      } 

     ));

});

FIDDLE EXAMPLE

答案 1 :(得分:0)

使用正则表达式模式的最佳方式

 var patternforchar=/^[a-zA-Z\s]+$/;
 $("#text1").bind('keyup',function(){

       if(patternforchar.test($(this).val())){
         alert("highlight your error");
        return "false";//do form submit error
       }else{ return "true"}

  });