替换JavaScript中出现的几个匹配项

替换JavaScript中出现的几个匹配项,javascript,Javascript,我编写了一个代码来更改带有标记(^0、^1、^2、^3、^9)的字符串颜色 我是用php做的,但我不知道如何用JavaScript做同样的功能 $host = "^5MY ^4Team ^2Name ^8Is ^6LOL"; function getColoredName($host){ $count_rpl = 0; $hostname = $host; $h2 = str_replace("^1","<div style='color:#FF0000;'>

我编写了一个代码来更改带有标记(^0、^1、^2、^3、^9)的字符串颜色 我是用php做的,但我不知道如何用JavaScript做同样的功能

$host = "^5MY ^4Team ^2Name ^8Is ^6LOL";

function getColoredName($host){
    $count_rpl = 0;
    $hostname = $host;
    $h2 = str_replace("^1","<div style='color:#FF0000;'>", $hostname, $count_rpl_1);
    $h3 = str_replace("^2","<div style='color:#00FF00;'>", $h2, $count_rpl_2);
    $h4 = str_replace("^3","<div style='color:#FFFF00;'>", $h3, $count_rpl_3);
    $h5 = str_replace("^4","<div style='color:#0000FF;'>", $h4, $count_rpl_4);
    $h6 = str_replace("^5","<div style='color:#00FFFF;'>", $h5, $count_rpl_5);
    $h7 = str_replace("^6","<div style='color:#FF00FF;'>", $h6, $count_rpl_6);
    $h8 = str_replace("^7","<div style='color:#FFFFFF;'>", $h7, $count_rpl_7);
    $h9 = str_replace("^0","<div style='color:#000000;'>", $h8, $count_rpl_8);
    $final = str_replace("^8","<div style='color:#000000;'>", $h9, $count_rpl_9);
    $count = $count_rpl_1 + $count_rpl_2 + $count_rpl_3 + $count_rpl_4 + $count_rpl_5 + $count_rpl_6 + $count_rpl_7 + $count_rpl_8 + $count_rpl_9;
    $final = $final . str_repeat("</div>", $count);
    return $final;
}
$host=“^5MY^4团队^2名称^8为^6LOL”;
函数getColoredName($host){
$count_rpl=0;
$hostname=$host;
$h2=str\u replace(“^1”,”,$hostname,$count\u rpl\u 1);
$h3=str\u replace(“^2”,”,$h2,$count\u rpl\u 2);
$h4=str\u replace(“^3”,”,$h3,$count\u rpl\u 3);
$h5=str_替换(“^4”,”,$h4,$count_rpl_4);
$h6=str_替换(“^5”,”,$h5,$count_rpl_5);
$h7=str\u replace(“^6”,”,$h6,$count\u rpl\u 6);
$h8=str_替换(“^7”,”,$h7,$count_rpl_7);
$h9=str\u replace(“^0”,”,$h8,$count\u rpl\u 8);
$final=str\u replace(“^8”,”,$h9,$count\u rpl\u 9);
$count=$count\U rpl\U 1+$count\U rpl\U 2+$count\U rpl\U 3+$count\U rpl\U 4+$count\U rpl\U 5+$count\U rpl\U 6+$count\U rpl\U 7+$count\U rpl\U 8+$count\U rpl\U 9;
$final=$final.str_repeat(“,$count”);
返回$final;
}
如果可能的话,我如何在JavaScript中实现相同的功能

<script>
function getColoredName(input) {
    if (input != undefined)

    ....

}
</script>

函数getColoredName(输入){
如果(输入!=未定义)
....
}

第一个参数是要在调用它的字符串中匹配的模式或子字符串。查看文档了解更高级的用法。

使用
.replace()
应该很有趣

var text=“^5MY^4团队^2名称^8为^6OL,但大多数^999StackOverflow规则!!”;
变量sym2clr={
"^0": "#000",
“^1”:“#f00”,
“^2”:“0f0”,
“^3”:“#ff0”,
“^4”:“#00f”,
“^5”:“0ff”,
“^6”:“f0f”,
“^7”:“fff”,
"^8": "#000",
“^999”:“#f48024”
};
var html=text.replace(/(\^\d+)([^\^\s]+)/g,函数(_1,$2,$3){
返回“+$3+”;
});

document.body.innerHTML=html在你问问题之前你做了什么?你具体有什么问题?也许读a是一个好的第一步?“如果可能的话,有人为我做同样的一个”这不是堆栈溢出的工作方式。是的,我只是找到了单文本替换,但在我的情况下,我必须多个,因为我发布了我的问题,如果你能帮助我,我将不胜感激。“我刚刚找到了单文本替换,但在我的情况下,我必须多个”你能详细说明吗?替换多个不同字符串(
^1
^2
等)或同一字符串多次出现(例如,
^1
在字符串中多次出现)时出现问题。如果是前者,您只需执行与在PHP中相同的操作:多次调用替换过程(
str_replace
)。