Javascript多次替换为避免使用html标签的正则表达式

时间:2013-12-03 05:46:51

标签: javascript regex

所以我有一个java脚本可以找到元音并将它们大写。我想要做的是创建一个名为bigBlue的id,它将大写值更改为具有特定css属性的蓝色字符。

var strMessage1 = Emphathy;
var startDiv = '<div id="bigBlue">';
var endDiv = '</div>';
var newRoot = strMessage1
.replace(/a/g, startDiv+'A'+endDiv)
.replace(/e/g, startDiv+'E'+endDiv)
.replace(/i/g, startDiv+'I'+endDiv)
.replace(/o/g, startDiv+'O'+endDiv)
.replace(/u/g, startDiv+'U'+endDiv)
$("#test").append(newRoot);

以下是结果JsFiddle

我的输出几乎是乱糟糟的。我在想的是.replace也在替换startDiv和endDiv的属性。

如何在用大蓝色div中包含大写元音替换元音的同时避免替换startDiv和endDiv值?

1 个答案:

答案 0 :(得分:1)

尝试使用函数代替直接符号

var newRoot = strMessage1.replace(/[aeiou]/g, function(sym){return startDiv+sym.toUpperCase()+endDiv});

jsfiddle上的样本

如果你想让字符在一行上 - 请使用<span>代替<div>