因为几乎只有英文字符、数字、标点符号有全角和半角之分,所以替换这些就可以了。
/**
* 全角字符转换为半角字符
* @params str string 被转换的字符串
* @returns string 转换后的字符串
*/
function getString(str){
var result = ""; //替换后的结果
for (var i = 0; i < str.length; i++) {
if (str.charCodeAt(i) == 12288) //全角空格
result += String.fromCharCode(32); //半角空格
else if (str.charCodeAt(i) > 65280 && str.charCodeAt(i) < 65375)
result += String.fromCharCode(str.charCodeAt(i) - 65248); //其他全角字符
else
result += String.fromCharCode(str.charCodeAt(i));
}
return result;
}