小弟近日写程序遇到一问题
比如 允许任意的字母序列,但排除一个特定的,比如 shit
用正则表达式如何实现 谢谢
由于某些其他的原因,只能允许这样的形式/^*************************$/
比如/^\d+$/再次谢谢各位大虾

解决方案 »

  1.   

    <script>
    var str="iwurwebwudhshitwded";
    re=/^[a-z]*?(shit|sex)[a-z]*$/ig;
    if(re.test(str))
    alert("feifa");
    else
    alert("ok");
    试试,不知道满足否?
      

  2.   

    <body>
    <form>
    <input type="text" id="txt">
    <input type="button" value="check" onclick="a()">
    </form>
    <script language="javascript">
    function a(){
      var obj=document.getElementById("txt");
      var patrn=/shit|ctrl|alt/;
      //排除shit,ctrl,alt如果还有其它要求,可在上面正则中加入
      if (patrn.test(obj.value)) 
        alert("非法格式");
      obj.value=obj.value.replace(patrn,"");//也可把这个替换
    }
    </script>
    </body>
      

  3.   

    谢谢楼上的两位
    不过我试了两位的代码
    好像不行
    我好像没看见那个语句是排除的
    楼上的写的好像是只允许那三个单词把?你的代码直接copy运行不了
    还是谢谢你们 呵呵
      

  4.   

    排除?请说清楚是什么意思?
    var patrn=/shit|ctrl|alt/;//把这句重新粘贴下,上面的有全角符号obj.value=obj.value.replace(patrn,"");//这句不是把上面的三个(如果只有这三个)去掉了吗?
      

  5.   

    哦 明白了 
    因为我要实现的是 在文本框的后面 提示错误信息
    比如 姓名:_shit__  *输入不合法不会在js里面实现这种效果,所以借用别人的部分代码,但是正则表达式要自己写
    所以我只能写//之间的这一部分
    呵呵 不知楼上听懂没?  谢谢你的热心帮助.
    另: 不知楼上知道不知道怎么在文本框后面提示错误信息? 而不是弹出窗口
    如果可以 那就方便多了 呵呵
      

  6.   

    <script>
    function checkInput(txtInput)
    {
        var txtStr=txtInput.value;
    var reg =  /shit/ig;
    if(reg.test(txtStr))
    txtInput.value=txtStr.substring(0,txtStr.length-1);
    }
    </script>
    <input type="text" name="textfield" onkeyUp="return checkInput(this)">
    不允许输入shit,不知这是你与要的吗?
    但是不完美,没有限制都是字母,等下在弄,
      

  7.   

    <script>
    function checkInput(txtInput)
    {
        var txtStr=txtInput.value;
    var reg =  /shit|[^a-z]/ig;
    if(reg.test(txtStr))
    txtInput.value=txtStr.substring(0,txtStr.length-1);
    }
    </script>
    <input type="text" name="textfield" onkeyUp="return checkInput(this)">
      

  8.   

    我刚刚看了那个validator3.0的测试页面,你是不是想对输入的用户名进行限制,你有没有3.0版本的下载地址,有的话请发给我一个或者贴出地址,1.0和3.0是基于不同的原理实现的。
    他可能是把限制的用户名放在value内,最后通过getAttribute("value")的结果进行的验证。好像不能通过正则直接验证。以上内容给你个参考。