我尝试根据替换地图替换一些特殊字符(表情符号) 我写了这段代码,但它仍然不起作用..
var char_map = {
'■': 'e',
'♥': 'a',
'♦': 'm',
};
$.fn.map_replace = function() {
$(this).html(function(i, content) {
$.each(char_map, function(key, value) {
content = content.replace(key, value);
});
return content;
});
};
$(".comment").map_replace();
感谢您的帮助:)
答案 0 :(得分:4)
执行此操作的一种方法是使用转义码而不是文字Unicode字符,并使用正则表达式替换它们:
var char_map = {
'e' : /\u25A0/g,
'a' : /\u2665/g,
'm' : /\u2666/g,
};
$.fn.map_replace = function() {
$(this).html(function(i, content) {
$.each(char_map, function(character, regex) {
content = content.replace(regex, character);
});
return content;
});
};
$(".comment").map_replace();
初始方法不起作用的原因是默认情况下String.replace()仅替换搜索表达式的第一个次出现。通过使用正则表达式并指定“g”(用于“全局”)标志,您可以告诉它替换所有匹配。