我想要做的是匹配两个或多个字母的第一次出现,例如,我想从下面的字符串中突出显示 A 和 F:
"ASDFASDFASDFASDF"
但只有第一个A
,也只有第一个F
我试过了:
/A{1}F{1}/i
但是没有快乐...
任何想法表示赞赏...
有更简单的方法,比如使用indexOf。
作为一个想法,您可以使用不同的方法,而不是使用正则表达式来查找第一次出现,而是反转字符串,然后使用负前瞻查找最后一次出现。
然后使用用正则表达式替换来添加您的包装器<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);
span {
color: red;
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句