到目前为止,我在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。
我哪里错了?任何帮助将不胜感激!
答案 0 :(得分:1)
你的正则表达式实际上正在寻找timequarterthe
并将匹配(如果找到一个)分成三个反向引用。
我认为你的意思是:
var test = /time|quarter|the/ig;
答案 1 :(得分:1)
您的正则表达式test
与string
不匹配(因为它不包含子字符串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");