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

问题描述 投票:0回答:2

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

例如:必须允许java/j2eejava&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(""); 
  }

});
javascript jquery
2个回答
0
投票

尝试这样的事情

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

您可以在[@$\s\/&]中添加更多特殊字符


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!');
}
© www.soinside.com 2019 - 2024. All rights reserved.