过滤关键字中的特殊字符

2012-09-18  文晶 
<PRE class=html name="code"><html>
 <head>
  <title>js过滤特殊字符</title> 
  <script language="javascript">
  function checkalltextvalid()//form
  {   
   var form=document.getElementById("text");
   //记录不含引号的文本框数量   
    var resulttag = 0;   
   //记录所有text文本框数量   
   var flag = 0;   
   for(var i = 0; i < form.elements.length; i ++)   
   {   
    if(form.elements[i].type=="text")   
    {   
           flag = flag + 1;   
     //此处填写所要过滤的特殊符号   
     //注意:修改####处的字符,其它部分不许修改.   
     //if(/^[^####]*$/.test(form.elements[i].value))    
     
     if(/^[^|"'<>]*$/.test(form.elements[i].value))  
               resulttag = resulttag+1;  
     else  
      form.elements[i].select();  
    }  
    }  
   /**  
    * 如果含引号的文本框等于全部文本框的值,则校验通过  
    */  
    if(resulttag == flag)  
    return true;  
     else{  
     alert("文本框中不能含有nn 1 单引号: ' n 2 双引号: \" n 3 竖   | n 4 尖角号: < > nn请检查输入!");   
     return false;   
    }   
  }
  function textvalidate(){
   var code;
   var character;
   var err_msg = "文件夹名能包含下列字符之一:n \ / : * ? \" < > | & , ";
   if (document.all)
   {
    code = window.event.keycode;
   }else {
    code = arguments.callee.caller.arguments[0].which;
   }
   var character = string.fromcharcode(code);
   var txt = new regexp("[\*,\&,\\,\/,\?,\|,\:,\<,\>,\"]");
   if (txt.test(character)) {
    alert(err_msg);
    if (document.all) {
     window.event.returnvalue = false;
    }else {
     arguments.callee.caller.arguments[0].preventdefault();
    }
   }
  }
  //更多的过滤字符,请自己补充到new Array("char","varcahr","#");
  function checkForms()
  {
  
     var iu, iuu, regArray=new Array("char","varcahr","#","admin");
     iuu=regArray.length;
     var obj=document.getElementById("username");
     if(obj.value=="")
     {
       alert("用户名不能为空");
        obj.focus();
        return false;
     }
  
     for(iu=1;iu<=iuu;iu++)
     {  
        if(regArray[iu] !="")
         {
            if (obj.value.indexOf(regArray[iu])!=-1)
             {
               alert("注册名不可以包含:" + regArray[iu]);
               document.Gforms.username.focus();
               return false;
            }
          }
     }
     return true;             
  }
  function characterFilter(){
   var obj=document.getElementById("username");
   var reg = /[!@]+/;
   //if (reg.test("@"))
   if (reg.test(obj)){
     alert("包含敏感字符");
   }
  }
  </script>
 </head>
 <body>
   <input type="text" id="text" name="to" title="请输入要关键字" size="60"/>
   <input type="submit" id="sub" name="sub"  onclick="checkalltextvalid()"/>
   <input type="submit" id="sub" name="sub" value="测试" onclick="textvalidate()"/>
   <br>
   <form method="post" onSubmit="return checkForms();">
  请输入用户名:<input type="text" name="username">
  <input type="submit" name="Submit" value="提交">
  
  <br>
  <input type="submit" name="Submit2" value="TEST" onclick="characterFilter()">
  </form>
  </body>
</html></PRE>

<PRE></PRE>
<P>下面的方法可以参考:</P>
<PRE></PRE>
<PRE class=html name="code">&nbsp;</PRE><PRE class=html name="code">&nbsp;</PRE><PRE class=html name="code"><html><head></head><body><script language="javascript">/**过滤关键字中的特殊字符*/function checkSpecialCharacter(inputvalue) { //除了这五个字符&%-_|外,其他特殊字符都进行限制var str=inputvalue.value;//var SPECIAL_STR ="¥#$~!@^*();'\"?><[]{}\\,:/=+—“”‘"; var SPECIAL_STR ="[`~!@#$^*()+={}':;',\\[\\].<>/?~!@#¥……*()——+{}【】‘;:”“’。,、?]";for(i=0;i<str.length;i++)if (SPECIAL_STR.indexOf(str.charAt(i)) !=-1) { alert("你的关键字中含有非法字符"+str.charAt(i)+",请输入正确的格式!"); inputvalue.value=''; inputvalue.focus(); return false;}return true;} alert (checkAllTextValid(document.getElementById("inputvalue")) );</script><input type = "text" value = "" id = "inputvalue" onblur ="checkSpecialCharacter(this)" ></body></head></PRE>
242°|2428 人阅读|0 条评论
登录 后发表评论