1

これは、カスタム charcodes の正しいコードを返す良い方法でしょうか?

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 );
    }
}

キーコードは、値がこのように格納される配列です

[
    ...
    { "char" : "ä" , "code" : 132 },
    { "char" : "à" , "code" : 133 },
    { "char" : "å" , "code" : 134 },
    ...
];

デフォルトでは、JavaScript は「特殊文字」に対して間違った値を返します。
このコードはこれで十分ですか?

4

1 に答える 1

1

オブジェクトを簡単に使用できます。

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

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

通常のcharCodeAt関数は正しい期待値を返すため、オーバーライドしないでください。

于 2012-06-03T07:58:05.873 に答える