我正在寻找一个js函数或lib,它会将™
之类的特殊字符转换为™
,有人知道吗?我正在寻找我能找到的最简单的那个。
答案 0 :(得分:4)
那些是HTML named entities并且它们不是最佳解决方案 - 更好地使用数字实体。为什么数值实体更好?因为您没有©
→©
这样的地图。你需要的只是一个角色本身。
function abc(input) {
var output = "";
var allowedChars = "0123456789qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM";
for (var i = 0; i < input.length; i++) {
var char = input.charAt(i);
var charCode = input.charCodeAt(i);
if (isNaN(charCode)) {
continue;
}
if (allowedChars.indexOf(char) > -1) {
output += char;
} else {
output += "&#" + charCode + ";";
}
}
return output;
}
alert(abc("Hello world! ©™汉")); // Hello world! ©™汉
答案 1 :(得分:2)
我不知道它的库或功能,但是如果你专门处理Unicode,则不必编码<
,>
,{{1}以外的任何特殊字符}和"
。
答案 2 :(得分:1)
你真正需要的只是一个查找表。这里有一个很好的HTML实体列表:
http://www.w3schools.com/tags/ref_entities.asp
您的查找代码如下所示:
var characters = [];
characters['"'] = '"';
characters['\''] = ''';
characters['&'] = '&';
characters['<'] = '<';
characters['>'] = '>';
// ...
然后只需查看文本中的每个字符,然后开始替换。
答案 3 :(得分:0)
这就是我的所作所为。我去了here并在firebug中执行了这段代码:
ret = ''; td = jQuery('table.reference td'); for (var i = 0; i < (td.length / 4); i++) ret += td.eq(i).text() + ' ' + td.eq(i + 2).text() + ' ' + td.eq(i + 3).text() + ' ' + td.eq(i + 3).text()+ '\n'; ret;
得到了这个:
"" " quotation mark quotation mark " quotation mark ' ' " ' ' ' quotation mark ' ' (does not work in IE) ' (does not work in IE) ' ' (does not work in IE) apostrophe apostrophe ' apostrophe & & ' (does not work in IE) & & & apostrophe & & & & & ampersand ampersand & ampersand < < & < < < ampersand < < < < < less-than less-than < less-than > > < > > > less-than > > > > > greater-than greater-than > greater-than >     greater-than   non-breaking space non-breaking space   non-breaking space ¡ ¡ ¡ ¡ ¡ non-breaking space ¡ ¡ ¡ ¡ ¡ inverted exclamation mark inverted exclamation mark ¡ inverted exclamation mark ¢ ¢ ¡ ¢ ¢ ¢ inverted exclamation mark ¢ ¢ ¢ ¢ ¢ cent cent ¢ cent £ £ ¢ £ £ £ cent £ £ £ £ £ pound pound £ pound ¤ ¤ £ ¤ ¤ ¤ pound ¤ ¤ ¤ ¤ ¤ currency currency ¤ currency ¥ ¥ ¤ ¥ ¥ ¥ currency ¥ ¥ ¥ ¥ ¥ yen yen ¥ yen ¦ ¦ ¥ ¦ ¦ ¦ yen ¦ ¦ ¦ ¦ ¦ broken vertical bar broken vertical bar ¦ broken vertical bar § § ¦ § § § broken vertical bar § § § § § section section § section ¨ ¨ § ¨ ¨ ¨ section ¨ ¨ ¨ ¨ ¨ spacing diaeresis spacing diaeresis ¨ spacing diaeresis © © ¨ © © © spacing diaeresis © © © © © copyright copyright © copyright ª ª © ª ª ª copyright ª ª ª ª ª feminine ordinal indicator feminine ordinal indicator ª feminine ordinal indicator « « ª « « « feminine ordinal indicator « « « « « angle quotation mark (left) angle quotation mark (left) « angle quotation mark (left) ¬ ¬ « ¬ ¬ ¬ angle quotation mark (left) ¬ ¬ ¬ ¬ ¬ negation negation ¬ negation ¬ ­ ­ negation ­ ­ ­ ­ soft hyphen soft hyphen ­ soft hyphen ® ® ­ ® ® ® soft hyphen ® ® ® ® ® registered trademark registered trademark ® registered trademark ¯ ¯ ® ¯ ¯ ¯ registered trademark ¯ ¯ ¯ ¯ ¯ spacing macron spacing macron ¯ spacing macron ° ° ¯ ° ° ° spacing macron ° ° ° ° ° degree degree ° degree ± ± ° ± ± ± degree ± ± ± ± ± plus-or-minus plus-or-minus ± plus-or-minus ² ² ± ² ² ² plus-or-minus ² ² ² ² ² superscript 2 superscript 2 ² superscript 2 ³ ³ ² ³ ³ ³ superscript 2 ³ ³ ³ ³ ³ superscript 3 superscript 3 ³ superscript 3 ´ ´ ³ ´ ´ ´ superscript 3 ´ ´ ´ ´ ´ spacing acute spacing acute
根据您的特定需求,不应该太难以模塑