我有个TEXTBOX,想用正则表达式验证,其输入的值,不能包含’\ % _ & | , - ; $ ! ? > * # : % _ @字符
var txtICD = document.getElementById("TB_ICD");
var regExp1 = new RegExp(/[^’\%_&|,\-;$!?>*#:%_@]\B/);
if(!txtICD.value.match(regExp1))
{
  window.alert("不能输入以下字符(’\ % _ & | , - ; $ ! ? > * # : % _ @)");
  txtICD.value = "";
  txtICD.focus();
  return false;
}
 我用以上javascrip脚本验证,却只能到首尾字符,不能验证到中间的字符,例如:在Textbox中输入:%TT或者是TT%或者是%都能检验出来其中包含非法字符,而输入像TT%YYT这样非法字符在中间的就检不出来,谁能帮帮我呀,怎么写这样的表达式...谢谢

解决方案 »

  1.   

    一个一个的添加进去,不用正则,用js:if (f.name.value.indexOf('"')!=-1 || f.name.value.indexOf(' ')!=-1 || f.name.value.indexOf("'")!=-1 || f.name.value.indexOf(',')!=-1 || f.name.value.indexOf(' ')!=-1 || f.name.value.indexOf(';')!=-1 || f.name.value.indexOf('*')!=-1 || f.name.value.indexOf('&')!=-1 || f.name.value.indexOf('|')!=-1 || f.name.value.indexOf('$')!=-1 || f.name.value.indexOf('<')!=-1 || f.name.value.indexOf('>')!=-1)
    {
    alert('会员名不得包含特殊符号');
    f.name.focus();
    return false;
    }
    没添加完,你自己添加吧
      

  2.   

    <html>
    <head>
    <script id=clientEventHandlersJS language=javascript>
    <!--function btnok_onclick() {
            var txtICD = document.getElementById("TB_ICD");
    var regExp1 = new RegExp("[\x28\x27\x5c\x25\x2d\x7c(]");
    if(txtICD.value.match(regExp1))
    {
      window.alert("不能输入以下字符(’\ % _ & | , - ; $ ! ? > * # : % _ @)");
      txtICD.value = "";
      txtICD.focus();
      return false;
    }
            else
            {
              window.alert("ok");
            }
    }//-->
    </script>
    </head>
    <body>
    <form id=form1>
    <input type=text id=TB_ICD>
    <input type=button id=btnok onclick="return btnok_onclick()" value="确定">
    </form>
    </body>
    </html>
      

  3.   

    var regExp1 = new RegExp("[\x28\x27\x5c\x25\x2d\x7c]");里面\x没写全,照着ASCII表所要过滤的字符写全就行了
      

  4.   

    var regExp1 = new RegExp("[\x28\x27\x5c\x25\x2d\x7c]");
    正解!
      

  5.   

    var regExp1 = new RegExp(/[’\%_&\|,\-;$!\?>\*#:@]/);
    肯定好用