別にBlogに限らないけど。すぐ体験したい方は左上の「見やすくする」をクリック!
NyaruruさんのBlogで知ったのですが
Microsoft のドキュメント規約に従って英数と日本語の間にホワイトスペースを入れる
というのがあるそうです。私も昔はスペースを入れてましたが、見やすさということであれば、それはブラウザの仕事だよねってことで最近はそうしていません。Wordでは日本語と英数の間は適切に空きますね。ただ、IEでは適切に表示されません。
てことで日本語と英数の間にスペースを入れるJavaScriptのコード書いてみました。次のコードをアドレス欄に入れてEnter! UTF-8のページじゃないとダメかも。
javascript:function replace(e){for(var i=0;i
1行にまとめていないソースコードはこちら。
//replace(document.getElementsByTagName('body'));
function replace(e) {
for (var i = 0; i < e.length; ++i) {
if (e[i].nodeType == 3) {
var t = e[i].nodeValue;
t = t.replace(/([一-龠ぁ-んァ-ヴー]+)(\w+)/gi, "$1 $2");
t = t.replace(/(\w+)([一-龠ぁ-んァ-ヴー]+)/gi, "$1 $2");
e[i].nodeValue = t;
} else {
if (e[i].hasChildNodes) replace(e[i].childNodes);
}
}
}
JavaScriptで正規表現やDOMのコード調べるのに苦労した。グループ化した値を"$1"で使えるとか……。TextNodeを対象に書き換えてるのだけど、これだと「ほげfooもげ」のようなものはスペースが入らないですね。スペース入れる条件・書き方もこれでいいのやら。誰かエレガントに(作成 or 指摘w)お願いします。
あと、1マス空けるのもブラウザの仕事かなぁと書いていて思った。Wordでは1マス空けるのはスタイルとして扱ってくれますよね。