我的网站上有一个搜索框,我需要将用户输入的所有西班牙语字符替换为相应的英文字母。我编码了如下所示。当我将它插入我的项目时,即使创建一个编码相同的简单html页面,这也无法正常工作。我的页面正在使用<meta charset="utf-8" />
。当我创建一个小提琴http://jsfiddle.net/KJAy3/时,这工作正常。这是它在调试器
我做错了什么?我应该对我们进行什么样的编码?在表单提交之前触发此Replace方法。
function encodeSearch(term){
term=term.replace("á","a");
term=term.replace("Á","A");
term=term.replace("é","e");
term=term.replace("É","E");
term=term.replace("í","i");
term=term.replace("Í","I");
term=term.replace("ó","o");
term=term.replace("Ó","O");
term=term.replace("ú","u");
term=term.replace("Ú","U");
term=term.replace("ñ","n");
term=term.replace("Ñ","N");
return term;
}
答案 0 :(得分:7)
您使用过<script type="application/javascript" charset="utf-8" src="yourfile.js"></script>"
吗? (当然,假设您的文件保存为utf-8。)
答案 1 :(得分:0)
如果您要在HTML中使用这些特殊字符,可能需要对所有特殊字符使用此字符串replace
方法:
[somestring].replace(/[\u0080-\u024F]/g,
function(a) {
return '&#'+a.charCodeAt(0)+';';
});
它会将所有特殊字符转换为数字html实体,并且无需在javascript中键入所有这些字符,例如
'ñíóúü¡¿'.replace(.replace(/[\u0080-\u024F]/g,
function(a) {
return '&#'+a.charCodeAt(0)+';';
});
//=> result
// ñíóúü¡¿