如何在javascript中处理(®'¿¡¡À)特殊字符?

时间:2010-06-09 09:18:14

标签: javascript

我需要开发一个javascript函数,不允许字符串中的特殊字符(®©¿¡À)。问题是IE8无法识别字符串中的特殊字符,并在使用indexOf()方法时返回为-1。处理这些特殊字符的正确方法是什么?

3 个答案:

答案 0 :(得分:2)

只要您的所有编码都正确(您是将文件保存为UTF-8吗?它是否作为UTF-8?),您应该能够包含这些特殊字符。但是,您可以使用\u转义JavaScript中的字符,然后转换为十六进制的字符代码。

这是一个实用程序函数,您可以使用它(例如,在您的JavaScript控制台中)来获得转换:

function escapeForCharacter(character){
    var escape = character.charCodeAt('0').toString(16);
    while(escape.length < 4){ escape = '0' + escape; }
    return '\\u'+escape;
}

但是,我会接受deceze的建议。如果逃避特殊字符不是一个选项(我总是喜欢逃避剥离,因为它不太可能做一些会惹恼你的用户的事情,比如删除他们名字中的字母(免责声明:我的名字有'í> '在其中)),使用String的{​​{1}}方法和正则表达式。这个将删除任何非ASCII字符:

replace

答案 1 :(得分:0)

var c = "® ´ © ? ! ° A ";
alert(c.indexOf('©'));

正确地为我服务。编码之间只有区别 - &gt; in Win1250它在utf-8 6

中返回4

(在IE中)

答案 2 :(得分:-2)

您可以使用正则表达式和函数匹配并替换