TO hbhbhbhbhb1021 :
\\\\d+ 试过了,不好用。To numa001 :
也是一样。

解决方案 »

  1.   

    两种情况,本来以为要多转意的,已经测试了,try it<input name="haha">
    <input name="re" value="\d+">
    <input name="button1" type="button" value="test" onclick="show(document.getElementById('re').value,document.getElementById('haha').value)">
    <script language=javascript>
    function show(validChar,inputValue){
    var regexStr="^"+validChar+"$"; 
    var regex=new RegExp(regexStr); 
    alert(regex.test(inputValue)); 
    }
    </script>
    <input name="haha">
    <input name="button1" type="button" value="test" onclick="show('\\d+',document.getElementById('haha').value)">
    <script language=javascript>
    function show(validChar,inputValue){
    var regexStr="^"+validChar+"$"; 
    var regex=new RegExp(regexStr); 
    alert(regex.test(inputValue)); 
    }
    </script>
      

  2.   

    to hbhbhbhbhb1021 :首先谢谢您的大力帮助。
    第一种做法和我实际使用比较相识,试了一下能通过,但为什么要去掉一个斜杠呢,想不明白,您能说说吗?
    另外去掉一个斜杠的做法似乎不太还,因为应用中还有汉字验证和邮件验证,首先在汉字验证这就通不过。往您明示。
      

  3.   

    原因就在于一些特殊字符需要转意上面了
    JS的正则如果在new RegExp中,这里是当字符串参数传进去的,所以需要转意,而直接写re=//这里则不需要转意,
    而在页面上获取的,有可能是已经经过转意后的字符,也有可能是没经过转意的,所以要具体情况具体看了。
      

  4.   

    <input type="text" 
           name="name" 
           validChar="[\u4E00-\u9FA5]{2-3}"  
           />我的应用中是这样的,输入框的验证表达式作为属性写在input标签中,验证时取出验证,刚才去掉一个斜杠可以验证数字了,现在在汉字验证的地方遇到了麻烦,不知该如何处理?
      

  5.   

    validChar这个是自定义的属性啊,具体调用是怎么调用的呢
      

  6.   

    我使用的getAttribute,validChar的值能够获得。
      

  7.   

    下面是我的具体调用语句。/**
    * 检查文本框
    */
    function checkTextBox(vTextBox){
    // 取得文本框中允许输入的合法文字正则表达式
    var validChar=vTextBox.getAttribute("validChar");

    // 取得文本框的输入
    var inputValue=vTextBox.value;

    // 进行正则表达式验证
    //alert("表达式为"+validChar);
    //alert("验证的字符串为"+inputValue);
    var regexStr="^"+validChar+"$";
    var regex=new RegExp(regexStr);
    return regex.test(inputValue);
    }
      

  8.   

    这个问题不是出在那里了
    [\u4E00-\u9FA5]{2,3}
    是{2-3}这个不符合正则的规则
      

  9.   

    谢谢hbhbhbhbhb1021 的帮助,现在我已经全部解决问题了,
    这些写法如下:
    员工号:"\d{4}"
    姓名:"[\u4E00-\u9FA5]{2,3}" 
    邮件:"\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*"
    费用:"\d+(\.\d{0,2})*"主要就是将原来双斜杠的地方改成了单斜杠。虽然看上去比较别扭,但能运作比不运作强多了。如果能写双斜杠,还是规范的也能在java中用的正则表达式写法,就更好了,有什么办法能让它实现吗?