禁止输入特殊字符

<html>
<head>
<script>
function regInput(reg){
var srcElem = event.srcElement
var oSel = document.selection.createRange()
var srcRange = srcElem.createTextRange()
oSel.setEndPoint("StartToStart", srcRange)
var num = oSel.text + String.fromCharCode(event.keyCode) + srcRange.text.substr(oSel.text.length)
event.returnValue = reg.test(num)
}


function ValidateSpecialCharacter() {
   var code;
   if (document.all) { //判断是否是IE浏览器
    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)) {
    if (document.all) {
     window.event.returnValue = false;
    } else {
     arguments.callee.caller.arguments[0].preventDefault();
    }
   }
}

// 验证中文字符和特殊字符
function chineseVaildate(value){
   if (value == null || value=="")
    return true;
     if ((/[\u4E00-\u9FA5]+/.test(value))){
    return false;
   }
   return true;
}

function validate(obj){
   if (!chineseVaildate(obj.value)){
    alert("有特殊字符和中文字符");
   }
}
</script>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>无标题文档</title>
</head>

<body>
<form name="form1" method="post" action="">
  <input name=UserName id="UserName" size=25 maxlength="25" onpaste="return false;" ondragenter="return false" autocomplete="off" onkeypress="regInput(/^[\w]*$/)" value="">
<br/><br/>
<input type=text name='name' size=25 onKeyPress='if (event.keyCode < 34 || event.keyCode > 105 ||event.keyCode==33) event.returnValue = false;'>
<br/><br/>
<input type=text name='name' size=25 onKeyPress='alert(event.keyCode);'>
<br/><br/>
不允许输入特殊字符和空格: <input id="code" onkeypress="return ValidateSpecialCharacter();" onblur="validate(this)"/><br/><br/>
不允许输入空格:<input id="dd" onkeyup="value=value.replace(/\s/g,'')"/>
</form>
</body>
</html>

你可能感兴趣的:(正则表达式,浏览器,IE)