我想要做的是匹配第一次出现的两个或多个字母,例如,我想从下面的字符串中突出显示A和F:
"ASDFASDFASDFASDF"
但只有第一个A
而且只有第一个F
我试过了:
/A{1}F{1}/i
但没有快乐......
任何想法都赞赏......
答案 0 :(得分:0)
这可以为您提供所需的匹配:
/^(a).*?(f)/i
答案 1 :(得分:0)
使用indexOf等更简单的方法。
就像一个想法,你可以使用不同的方法而不是使用正则表达式来找到第一次出现,但是要反转字符串然后使用negative lookahead找到最后一次出现。
然后使用替换为正则表达式来添加像<span>
这样的包装器,然后再次反转该字符串。
最后一次出现的示例正则表达式:
var str1 = "ASDFASDFASDFASDF";
str1 = str1
.split("").reverse().join("")
.replace(/([A|F])(?!.*\1)/gim, '>naps/<$1>naps<')
.split("").reverse().join("");
document.write(str1);
document.write("<br>");
var str2 = "I am on a shark fishing trip, a fishing trip for shark I am on.";
str2 = str2
.split(" ").reverse().join(" ")
.replace(/(shark|trip)(?!.*\1)/gim, '<span>$1</span>')
.split(" ").reverse().join(" ");
document.write(str2);
&#13;
span {
color: red;
}
&#13;