javascript转义除非英语以外的特殊字符

时间:2011-06-23 07:49:57

标签: javascript escaping

我在解决非英语字符方面存在问题。

例如,

var text1 = "ABC Farmacéutica Corporation".
text1 = escape(text1);

output: ABC%20Farmac%E9utica%20Corporation 

但我想逃避除é等非英语字符以外的特殊字符。 我们是否有任何逻辑可以忽略这些字符?

请帮助,提前致谢。

1 个答案:

答案 0 :(得分:1)

escape函数返回以Unicode格式转义的文本。空格表示为%20(十六进制)。如果我理解正确你,你不想逃避é,在这种情况下,只有空格字符。我可以看到这一点的唯一方法是你有一个包含那些你不想被转义的非英文字符的表并引用它。像这样:

var dontEscape = "éöå....and_so_on";
var text = "ABC Farmacéutica Corporation";
var escaped = "";
for (var i = 0; i < text.length; i++) {
  var test = text.substring(i, i+1); // charAt is unsafe with unicode chars
  escaped = test.indexOf(test.toLowerCase()) == -1 ? escape(test) : test;
}

为什么要选择性地转义字符有什么特殊原因吗?