携帯のキーストローク数
function array_index(val) {
for (var i = 0; i < this.length; i++) {
if (this[i] == val)
return i;
}
return false;
}
Array.prototype.index = array_index;
// str のキーストローク数を求める。key はオプション
function get_stroke(str, key) {
if (!key)
key = [["@"], ["a", "b", "c"], ["d", "e", "f"],
["g", "h", "i"], ["j", "k", "l"], ["m", "n", "o"],
["p", "q", "r", "s"], ["t", "u", "v"], ["w", "x", "y", "z"],
[",", "."]];
var ret = 0;
for (var i = 0; i < str.length; i++) {
for(var j = 0; j < key.length; j++) {
var pos = key[j].index(str.charAt(i));
if (pos !== false) {
ret += pos + 1;
if (key[j].index(str.charAt(i-1)) !== false)
ret += 1;
}
}
}
return ret;
}
get_stroke("aaa"); // => 5;
get_stroke("lowreal.net"); // => 23;
get_stroke("adg.jp"); // => 7
key を変更すればひらがな入力のストローク数も!(意味ないけど)てか2バイトはできないかも。どうでもいい
key はボタンごとの文字の配列。前の文字が同じボタンの場合、そのままじゃ入力できないので +1 してる。なんかアレだ……
キャリアによってキー配置が違うかもしれないけど、知らない。
.jp ドメインはさりげなく最短なので素敵よね。
関連エントリー
- DOM の KeyBoardEvent の e.keyCode とか e.which とかを文字列としてとりたいやつ 昔 keyString.js という KeyBoardEvent からなんとなく押されたキーの文字列表記になおすやつを書いたことがある。 h...
- Redis のメモリ消費量を見積る 実際に値をセットしてみて、そのキーの容量を求めることができるコマンドがある。 https://github.com/sripathikris...
- キーバインドの実装 textarea で動く劣化コピー xml-mode の入力まわりを整理して分離してみた。C-x i とかいうツーストローク以上のキーバイン...
- NiZ Keyboard PLUM からキーマップや打鍵回数を読み出す NiZ のアプリケーションは Windows 向けしかない。プロトコルが気になったので、とりあえず打鍵回数を読み出すところをまでをやってみた...
- ブログのキャッシュバックエンドの変更 今までは Cache::FileCache によるファイルシステムキャッシュにしていたけど、いくつか問題があって SQLite にかえた フ...