charCodeAt返回自定义charcodes的正确代码

时间:2012-06-02 11:13:20

标签: javascript

这是返回自定义字符代码的正确代码的好方法

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会为“特殊字符”返回错误的值 这段代码是否足够?

1 个答案:

答案 0 :(得分:1)

您只需使用一个对象:

var codes = {
    "ä": 132,
    "à": 133,
    "å": 134
};

function customCharCodeAt( string, index ) {
    return codes[string.charAt(index)] || string.charCodeAt(index);
}

您不应该覆盖正常的charCodeAt函数,因为它确实返回正确和预期的函数 值。