Jquery替换文本,但保留大小写



我正在为一个喜欢用"Sensasianal"这个词来形容他的亚洲美食的人建立一个网站。单词asian总是用另一种颜色来挑选,我在Jquery中用.replaces((实现了这一点,因此:-

replaceAsian.html(replaceAsian.html().replace(/sasiana/ig, "s<em>asian</em>a"));

然后我可以用单独的颜色来设计元素的样式。

但是,如果原始文本是大写的,则结果是大小写混合的。

所以我尝试了这个

replaceAsian.html(replaceAsian.html().replace(/SASIANA/ig, "S<em>ASIAN</em>A"));
replaceAsian.html(replaceAsian.html().replace(/sasiana/ig, "s<em>asian</em>a"));

但结果仍是喜忧参半。

如果有人能建议我如何修改文本,但保留原来的情况,我将感谢你的帮助。非常感谢。

replaceAsian.html(replaceAsian.html().replace(/(s)(asian)(a)/ig, "$1<em>$2</em>$3"));

将保留大小写,因为它重用匹配的文本。

请注意,i是不区分大小写的标志,g意味着它将匹配每一次出现,而不是像没有g标志时那样只匹配第一次。

有关JS中正则表达式功能的良好概述,请参阅MDN。

replaceAsian.html(replaceAsian.html().replace(/(S)(ASIAN)(A)/ig, "$1<em>$2</em>$3"));

jsFiddle证明

replaceAsian.html(replaceAsian.html().replace(/SASIANA/g, "S<em>ASIAN</em>A"));
replaceAsian.html(replaceAsian.html().replace(/sasiana/g, "s<em>asian</em>a"));

有关regexp的其他信息,请参阅本页。

最新更新