我想在字符串中捕获一些值,然后将它们返回到页面。这是代码的一个例子。据我所知,.exec应该将它匹配的值存储到数组中吗? 这应该归还Savage,Betsy。有人可以告诉我什么是错的吗?
var regex = /\b(Betsy)(Savage)\b/i;
var string = "My friend is Betsy Ann Savage";
var arrayMatch = null;
while(arrayMatch = regex.exec(string)){
document.getElementById("text").innerHTML = arrayMatch[1] + ", " + arrayMatch[0];
}
答案 0 :(得分:2)
你没有得到这样的任何比赛。您可以在(Betsy)和(Savage)之间添加。* ...
答案 1 :(得分:0)
听起来你认为\b(Besty)(Savage)\b
会匹配EITHER Best,或者Savage,但事实并非如此。它正在寻找两个部分组合在一起的字符串 - 您也可以尝试匹配\b(BetsySavage)\b
。这是因为有一段时间,你确实有两个由parentasis分隔的组,你将它们直接放在一起,所以Regex引擎说'好吧',我会找到彼此相邻的两个。我认为你真正想做的是使用代表OR的|
。与\b(Besty|Savage)\b
中一样。