Jquery替换文本但保留大小写

时间:2011-11-17 12:33:20

标签: jquery regex case-sensitive

我正在为喜欢使用“Sensasianal”这个词来描述他的亚洲美食的人建立一个网站。亚洲字总是使用另一种颜色来挑选,我使用.replace()设法在Jquery中实现,因此: -

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"));

但结果仍然是混合的。

如果有人可以告诉我如何更改文本但保留原始案例我会很感激协助。非常感谢。

3 个答案:

答案 0 :(得分:9)

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

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

请注意,i是不区分大小写的标志,而g表示它将匹配每次出现,而不是仅匹配没有g标志的第一次出现。

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

答案 1 :(得分:4)

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

jsFiddle to prove

答案 2 :(得分:1)

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的其他信息,请参阅this page