【问题标题】:javascript check if regex applyjavascript 检查正则表达式是否适用
【发布时间】:2011-09-17 10:55:52
【问题描述】:

首先,这是我的代码sn-p:

var str = '<!--:de-->some german text<!--:--><!--:en-->some english text<!--:-->';
var match =  str.match(/de-->([^<]+).+?en[^>]+>([^<]+)/i);
var textInDe = match[1]; 
var textInEn = match[2];

我得到了这个正则表达式验证(感谢 The Mask),效果很好。

现在,我想用 if 语句检查这个正则表达式是否适用于某个字符串。 我正在使用 Javascript jquery。

提前致谢:)

【问题讨论】:

    标签: javascript jquery regex


    【解决方案1】:

    您可以使用RegExp.test

    if(/de-->([^<]+).+?en[^>]+>([^<]+)/i.test(str)) {
       // something
    }
    

    【讨论】:

    • 嗯我真的不知道它应该如何工作?!它在 if 语句中会是什么样子? if(...== true) 还是什么?
    • @YeppThat'sMe 你不需要在 if 语句中包含 == true,从字面上看。也许=== true,但绝对不是另一个
    【解决方案2】:
    var str = '<!--:de-->some german text<!--:--><!--:en-->some english text<!--:-->';
    var match =  str.match(/de-->([^<]+).+?en[^>]+>([^<]+)/i);
    if(match.length > 0){
    //successful match
    }
    

    var re = new RegExp('regex string');
      if (somestring.match(re)) {
    //successful match
    }
    

    【讨论】:

    • 如果没有匹配项,那么match 就是null,这意味着你不能做match.length。如果您更改 if 语句 if (match){... 那么它将起作用。
    【解决方案3】:

    这个怎么样?

    function IsMatch(v) {
       //basically build your regex here
       var exp = new RegExp("^de-->([^<]+).+?en[^>]+>([^<]+)$"); return exp.test(v);
    }
    
    To call it:
    if(IsMatch('Your string')) alert('Found'); else alert('Not Found');
    

    【讨论】:

      猜你喜欢
      • 2013-04-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-06
      • 2012-12-16
      • 1970-01-01
      • 1970-01-01
      • 2012-04-10
      相关资源
      最近更新 更多