我正在为喜欢使用“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"));
但结果仍然是混合的。
如果有人可以告诉我如何更改文本但保留原始案例我会很感激协助。非常感谢。
答案 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"));
答案 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。