Javascript RegExp匹配&多个反向引用

时间:2013-08-17 13:21:12

标签: javascript jquery regex replace match

到目前为止,我在javascript匹配中尝试使用多个反向引用时遇到了麻烦: -

function newIlluminate() {
  var string = "the time is a quarter to two";
  var param = "time";

   var re = new RegExp("(" + param + ")", "i");

    var test = new RegExp("(time)(quarter)(the)", "i");

  var matches = string.match(test);

  $("#debug").text(matches[1]);

}

newIlluminate();

#Debug 匹配正则表达式'''打印'时间',这是 param 的值。

我已经看过匹配示例,其中使用括号中的匹配来使用多个反向引用但是我对(时间)(季度)...的匹配返回null。

我哪里错了?任何帮助将不胜感激!

2 个答案:

答案 0 :(得分:1)

你的正则表达式实际上正在寻找timequarterthe并将匹配(如果找到一个)分成三个反向引用。

我认为你的意思是:

var test = /time|quarter|the/ig;

答案 1 :(得分:1)

您的正则表达式teststring不匹配(因为它不包含子字符串timequarterthe)。我想你想要alternation

var test = /time|quarter|the/ig; // does not even need a capturing group
var matches = string.match(test);

$("#debug").text(matches!=null ? matches.join(", ") : "did not match");