【问题标题】:Javascript simple regexp doesn't workJavascript简单的正则表达式不起作用
【发布时间】:2010-05-16 23:26:53
【问题描述】:

我有这段代码,它看起来不错,而且非常基本,但我无法让它工作:

function checkValid(elem){

 var abc = elem.value;

 var re = "/[0-9]/";

 var match = re.test(abc);

 alert(match);
}

它匹配 0 和 9,但不匹配 1 到 8,这里有什么问题?谢谢。

【问题讨论】:

    标签: javascript regex


    【解决方案1】:

    re 是一个字符串,而不是 RegExp 对象。

    您需要使用正则表达式文字而不是字符串文字,如下所示:

    var re = /[0-9]/;
    

    此外,对于在字符串中任何位置包含数字的任何字符串,这将返回 true。
    您可能想将其更改为

    var re = /^[0-9]+$/;
    

    【讨论】:

      【解决方案2】:

      尝试删除双引号...

       var re = /[0-9]/;
      

      【讨论】:

        【解决方案3】:

        使用 \d 匹配一个数字并使其成为正则表达式,而不是字符串:

        var abc = elem.value;
        var re = /\d/;
        var match = re.test(abc);
        alert(match);
        

        【讨论】:

          猜你喜欢
          • 2011-02-02
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-05-06
          • 1970-01-01
          相关资源
          最近更新 更多