円マークキーでバックスラッシュを入力する
正規表現リテラル /foo\/bar/
が構文エラーで弾かれてなぜだろうと思っていたら円マークが原因だった。これだから日本語キーボードは困る。
カッとなってtextareaで円マークをバックスラッシュに置き換えるようにした。ついでにTABキーで\tを入力するようにした。
var input = document.getElementByName("edit"); function inputStr(event, input, str) { event.stopPropagation(); event.preventDefault(); var s = input.selectionStart; var c = input.value; input.value = c.substring(0, s) + str + c.substring(s, c.length); s += str.length; input.setSelectionRange(s, s); } input.addEventListener('keydown', function(event) { if(event.keyCode === "\t".charCodeAt(0)) { inputStr(event, input, "\t"); } else if(event.keyIdentifier === "U+00A5" /* yen mark */) { inputStr(event, input, "\u005C" /* backslash */); } });