Javascript 用数组键/值替换字符
我尝试根据替换地图替换一些特殊字符(表情符号)。Javascript 用数组键/值替换字符,javascript,jquery,Javascript,Jquery,我尝试根据替换地图替换一些特殊字符(表情符号)。 我写了这段代码,但仍然不起作用 var char_map = { '■': 'e', '♥': 'a', '♦': 'm', }; $.fn.map_replace = function() { $(this).html(function(i, content) { $.each(char_map, function(key, value) { content = con
我写了这段代码,但仍然不起作用
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();
感谢您的帮助:)一种方法是使用转义码而不是文字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”(表示“全局”)标志,您可以告诉它替换所有匹配项。一种方法是使用转义码而不是文字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”(表示“全局”)标志,您可以告诉它替换所有匹配项。您在文件上使用的编码是什么?页面是UTF-8编码的。您的代码实际上可以工作-只是替换只替换字符的第一个实例(请注意,“Lorem”每次都正确更改)。不幸的是,在早上的这个时候,让这样的角色与regex一起工作是我无法理解的,但这是你的问题。您可以使用在任何地方都可以找到的许多“replaceAll”代码段中的任意一个来提供所需的功能。此外,第4行有一个错误-尾随逗号将在IE中中断。您在文件上使用的编码是什么?页面是UTF-8编码的。您的代码实际上正在工作-只是替换只替换字符的第一个实例(请注意,“Lorem”每次都正确更改)。不幸的是,在早上的这个时候,让这样的角色与regex一起工作是我无法理解的,但这是你的问题。您可以使用在任何地方都可以找到的许多“replaceAll”代码段中的任意一个来提供所需的功能。另外,第4行有一个错误-尾随的逗号将在IE中中断。非常感谢!太好了,非常感谢!太好了。