本帖最后由 xtfei 于 2012-04-02 22:23:22 编辑

解决方案 »

  1.   

    其实若在后台JAVA代码中做这些校验比较好办,但现在需要在前台页面完成,而排除操作又是正则表达式的痛点,还望各位大侠指教啊
      

  2.   

    分两步进行验证不行吗?var s = 'csdna';
    var ar = ['c', 'cs', 'csd', 'csdn']; //不允许的字符集合function va(s, ar) {
    var patt = /^[a-zA-Z]+[\w]*$/;
    var vaFlag = true;
    if (patt.test(s)) {
    for (var i = 0; i < ar.length; i ++) {
    if (s == ar[i]) vaFlag = false;
    }
    }
    else vaFlag = false;
    return vaFlag;
    }alert(va(s, ar));
      

  3.   

    稍微改进一下。
    var s = 'C';function va(s) {
    var patt = /^[a-zA-Z]+[\w]*$/;
    var vaFlag = true;
    if (patt.test(s)) {
    if (/^(c|cs|csd|csdn)$/i.test(s)) vaFlag = false; //如果不需要忽略大小写,去掉i标志
    }
    else vaFlag = false;
    return vaFlag;
    }alert(va(s));
      

  4.   


    /^[a-zA-Z]+[\w]*$/.test(s)&&!/^(c|cs|csd|csdn)$/i.test(s)
      

  5.   

    /^(?!_|\d)(?!(c|cs|csdn)$)\w+$/.test("TheString")
      

  6.   

    7楼的方法挺好的!6楼的没明白,是JS中的写法?我自己琢磨了下,用了种很傻的方式:将所有可以字符串列出来
    "^(([a-zA-Z&&[^c]]\\w*)|(c[\\w&&[^s]]\\w*)|(cs[\\w&&[^d]]\\w*)|(csd[\\w&&[^n]]\\w*)|(csdn\\w+))$"这一大串,相比7楼的解法太惭愧了,看来还是没理解正则表达式的含义啊