円マークキーでバックスラッシュを入力する

正規表現リテラル /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 */);
	}
});