/[^\u4E00-\u9FA5]*[\W]*/g 肯定不好使,第一个模式就匹配了全部的英文数字了。这样用的话必须考虑贪婪和非贪婪模式,结果就是长长的表达式

解决方案 »

  1.   

    [^0-9a-zA-Z\u4E00-\u9FA5] 这句
    能不能把符号也去掉呀
      

  2.   

    [^0-9a-zA-Z\u4E00-\u9FA5]
    这句是能输入中文数字和英文,但是连&*^%$#@@,.;'"这些也能输了,zhouhs的要求似乎是不能输入这些字符的
      

  3.   

    <input onkeyup="this.value=this.value.replace(/[^\w\u4E00-\u9FA5]/g, '')">[^\W]  == [\w]  大小写不同, 结果是完全相反, 还有比如: [~\S] == [\s]
      

  4.   

    你看看[^\u4E00-\u9FA5]是否能输入符号呢? 不想测试,纯灌水我想如果[^0-9a-zA-Z\u4E00-\u9FA5]允许符号,那么前者就肯定允许符号。看起来不象啊???
      

  5.   

    Sorry!  [~\S] == [\s]
    ==>
    [^\S] == [\s]
    [^\D] == [\d]
    [^\B] == [\b]
      

  6.   

    是呀
    hl198393(BadBoy) ( )说的对
      

  7.   

    var str="w+-————regawg@%^%@%文通过235"
    alert(str.replace(/[\W^\u4E00-\u9FA5]/g,''))
      

  8.   

    meizz(梅花雪)  正解!!
      

  9.   

    <textarea name=a rows=10 cols=50>[^0-9a-zA-Z\u4E00-\u9FA5]
    这句是能输入中文数字和英文,但是连&*^%$#@@,.;'"这些也能输了,zhouhs的要求似乎是不能输入这些字符的
    </textarea>
    <textarea name=b rows=10 cols=50></textarea>
    <br><button onclick="b.value=re(a.value)">checking</button>
    <script>
    function re(str)
    {
    str=str.match(/[^0-9a-zA-Z\u4E00-\u9FA5]/g);
    return str.join('');;
    }
    </script>没错啊,符号输不了的啊。运行这个页面,显示被过滤的字符。
    [^0-9a-zA-Z\u4E00-\u9FA5] 和  [^\w\u4E00-\u9FA5] 是相等的表达式啊
      

  10.   

    [^0-9a-zA-Z\u4E00-\u9FA5] 和 [^\w\u4E00-\u9FA5] 是不相等的,
    因为[\w] == [0-9a-zA-Z_]  多了一个下划线