这是返回自定义字符代码的正确代码的好方法
String.prototype._charCodeAt = String.prototype.charCodeAt;
String.prototype.charCodeAt = function( i , keycodes ) {
if( keycodes !== 'undefined' ) {
for( var j = 0; j < keycodes.length; j++ ) {
if( this[i] === keycodes[j].char ) {
return keycodes[j].code;
}
}
} else {
return this._charCodeAt( i );
}
}
Keycodes是一个数组,其值存储如下
[
...
{ "char" : "ä" , "code" : 132 },
{ "char" : "à" , "code" : 133 },
{ "char" : "å" , "code" : 134 },
...
];
默认情况下,javascript会为“特殊字符”返回错误的值 这段代码是否足够?
答案 0 :(得分:1)
您只需使用一个对象:
var codes = {
"ä": 132,
"à": 133,
"å": 134
};
function customCharCodeAt( string, index ) {
return codes[string.charAt(index)] || string.charCodeAt(index);
}
您不应该覆盖正常的charCodeAt
函数,因为它确实返回正确和预期的函数
值。