限制文本框以允许在启动时使用特殊字符

时间:2014-06-28 06:59:43

标签: javascript jquery

我需要验证一个文本框,我用它来搜索来自数据库的内容。需要在开始时限制特殊字符,但允许在单词和空格之后。

Ex:必须允许     java/j2ee     java&servlets

但不是      @java      $java      (space)java

$("#keyvalue").keypress(function (e) { 

  var regex = new RegExp("^[a-z0-9][a-z0-9_ .-]*$");
  var regex1 =new RegExp("[,%_$]"); 
  var key = String.fromCharCode(!event.charCode ? event.which : event.charCode); 

  if (!regex.test(key)){

    $("#errormess").html("Please select valid input").show();
  } 

  if(regex1.test(key)) {

    e.preventDefault(); 
  } else { 

  $("#errormess").html(""); 
  }

});

2 个答案:

答案 0 :(得分:0)

尝试这样的事情

function isValid(){
    return !/[@$\s\/&]/g.test(yourString.indexOf(0));
    // Returns true if special char not exists at first position
}

您可以在[@$\s\/&]

中添加更多特殊字符

答案 1 :(得分:0)

检查此代码段

var textbox = document.getElementById('textbox');
var pattern = /^([a-zA-Z0-9]+)([a-zA-Z0-9!@#$%^&*()_+\-=\[\]{};':"\\|,.<>\/?\s]+)$/;
if(!pattern.test(textbox.value)){
    console.log('Not allowed!');
}

或者这个,具有不太复杂的正则表达式

var textbox = document.getElementById('textbox');
var pattern = /^([a-zA-Z0-9].*)$/;
if(!pattern.test(textbox.value)){
    console.log('Not allowed!');
}