我需要开发一个 javascript 函数,不允许字符串中出现特殊字符 (® ´ © ¿ ¡ ° À )。问题是IE8无法识别字符串中的特殊字符,并且在使用indexOf()方法时返回-1。处理这些特殊字符的正确方法是什么?
只要您的所有编码都是正确的(您是否将文件另存为 UTF-8?是否以 UTF-8 形式提供服务?),您应该能够包含这些特殊字符。但是,您可以使用 JavaScript 转义字符\u
,后跟十六进制字符代码。
您可以使用以下实用函数(例如,在 JavaScript 控制台中)来进行转换:
function escapeForCharacter(character){
var escape = character.charCodeAt('0').toString(16);
while(escape.length < 4){ escape = '0' + escape; }
return '\\u'+escape;
}
但是,我会接受 deceze 的建议。如果转义特殊字符不是一个选项(我总是更喜欢转义而不是剥离,因为它不太可能做一些会惹恼用户的事情,比如从他们的名字中删除字母(免责声明:我的名字中有一个“í”)), 用一个String
's replace
使用正则表达式的方法。这将删除所有非 ASCII 字符:
string.replace(/[^\u0020-\u007a]/g, '');
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)