这个写法有问题if (document.reg.userid.value.indexOf("'")>-1)
{
alert("用户名不允许用单引号!");
document.reg.userid.focus();
return false;
}

解决方案 »

  1.   

    String.prototype.IsValidString=function()
    {
    var checkOK = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_";
    var allValid = true;
    if (this.length<1)
      allValid=false;
       for (i=0;i<this.length;i++)
       {
    ch=this.charAt(i);
    for(j=0;j<checkOK.length;j++)
       if(ch==checkOK.charAt(j))
    break;
    if(j==checkOK.length)
    {
    allValid = false;
       break;
    }
       }
    return allValid;
    }这个放在你的公用js文件里,然后再每个需要检查的数据这样调用:
    datachar.IsValidString();
    返回值为真/假
    若真,则没有非法字符串
    若假,则
    就这样吧,希望能解决你的问题
      

  2.   

    谢谢各位。关于只能填入字母、数字、下划线的限制还有另一种方法,代码如下:onkeyup="this.value=this.value.replace(/[^\d\w]/g,'')"  onpaste="this.value=this.value.replace(/[^\d\w]/g,'')"其中里面混有三个字母d、w和g为什么呢??还有那些+号,=号等等都没有在过滤的字段里。能请教一下吗??