Javascript jQuery-为什么它会两次替换该值?
我需要将“:”转换为字符串中的微笑图像。用这个,Javascript jQuery-为什么它会两次替换该值?,javascript,jquery,Javascript,Jquery,我需要将“:”转换为字符串中的微笑图像。用这个, var post = "hello :)"; post = post.replace(/[:)]/g, "<img src='smile.png' \>"); var post=“你好:)”; post=post.replace(/[:)]/g,“”; 然而,输出是有限的 Hello <img src='smile.png' \> <img src='smile.png' \> 你好 如何防止错误更换?
var post = "hello :)";
post = post.replace(/[:)]/g, "<img src='smile.png' \>");
var post=“你好:)”;
post=post.replace(/[:)]/g,“”;
然而,输出是有限的
Hello <img src='smile.png' \> <img src='smile.png' \>
你好
如何防止错误更换?尝试以下方法:
var post = "hello :)";
post = post.replace(
/[:)]/g,
"<img src='smile.png' \>"
).once();
var post=“你好:)”;
post=post.replace(
/[:)]/g,
""
).一次();
它正在匹配:
和)
并逐个替换它们
成功
post = post.replace(/(:\))/g, "<img src='smile.png' \/>");
post=post.replace(/(:\)/g,”;
像这样试试
var post=“你好:)”;
post=post.replace(/(:\)/,“”);
console.log(post)
试试这个
var post = "hello :)";
post = post.replace(/(:\))/g, "<img src='smile.png' \>");
var post=“你好:)”;
post=post.replace(/(:\)/g,“”);
如果字符串包含“Hello:)你好吗:)”?呃,甚至不起作用-post.replace
将返回一个已经存在的字符串。var s=“Hello:)world:)“var post=s.replace(“:”,“您的代码在这里”);警报(post);控制台日志(post);这将只替换第一个“:”由于它只替换了一个,所以有了非常轻微的改进,但与OP的问题相同。但是自动关闭img标记“/>”也被替换。@SudharsanS不,反斜杠只需要自己转义,因为它试图转义>
.Img标记是dom元素,所以它以单斜杠结束,而不像双斜杠that@SudharsanS是的,在发布我的评论后意识到了这一点。现在修好了我想知道是什么问题,现在就看修好了:)谢谢。