jQuery - 为什么它会两次替换值?

时间:2016-10-21 11:43:51

标签: javascript jquery

我需要将“:)”转换为字符串中的笑脸图片。用过这个;

var post = "hello :)";
post = post.replace(/[:)]/g, "<img src='smile.png' \>");

然而,输出是

Hello <img src='smile.png' \> <img src='smile.png' \>

如何防止错误更换?

4 个答案:

答案 0 :(得分:5)

它匹配:)并逐个替换

成功

post = post.replace(/(:\))/g, "<img src='smile.png' \/>");

答案 1 :(得分:2)

试试这个

var post = "hello :)";
post = post.replace(/(:\))/, "<img src='smile.png' \>");
console.log(post)

答案 2 :(得分:1)

试试这个。

    var post = "hello :)";
    post = post.replace(/(:\))/g, "<img src='smile.png' \>");

答案 3 :(得分:0)

试试这个:

var post = "hello :)";

post = post.replace(
    /[:)]/g,
    "<img src='smile.png' \>"
).once();