<html>
<head>
<title></title>
</head>
<body>
<form name="form1">
<input type="text" name="text1" size="20">
</form>
</body>
</html>
<script  language="javascript">
<!--
//限制年月日的输入必须是数字
if (document.layers)
document.captureEvents(event.KeyPress);function blockA(e)
{
  if (document.layers)
    {
      var keyChar =e.which;
    }
  if (document.all)
    {
       var keyChar =event.keyCode;
    }
 if (keyChar>57 || keyChar<48)   //在这里加一些keyChar的判断语句,以及你要求的字符串的ASCII码,然后用charAt()方法进行提示判断。
    {
      alert('请输入数字!');
      return false;
    }}document.form1.text1.onkeypress = blockA;//-->
</script>

解决方案 »

  1.   

    也可以用正则表达式<script>
    a="~`@#$%^&*(){}[]|\'<>/?\\ "
    function ch()
    {
    v=document.f.t.value
    for(i=0;i<v.length;i++)
    {
    if(a.indexOf(v.substr(i,1))>-1) 
    {
    alert(v.substr(i,1)+"非法!")
    return
    }
    }
    }</script>
    <form name=f>
    <textarea name=t></textarea>
    <input type=button  onclick='ch()' value="test">
    </form>
      

  2.   

    我才开始学正则表达式,感觉应该能解决:function Check(str)
    {
        var re = str.match(/[ ~`@#\$%\^&\*\(\)\{\}\[\]\|'<>/?\\]/);
        if(re == null)
            return true;   //未发现非常字符则返回true    return false;      //否则会返回false;
    }我还不知道有没有错。。测试了一下好像没什么问题,你要找的字符都能检测出来。
      

  3.   

    呵呵有点看不清,改一下:function Check(str)
    {
        var s = /[ ~`@#\$%\^&\*\(\)\{\}\[\]\|'<>/?\\]/;    var re = str.match(s);    if(re == null)
            return true;   //未发现非常字符则返回true    return false;      //否则会返回false;
    }