2008年2月23日

 別に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マス空けるのはスタイルとして扱ってくれますよね。

posted @ 1:49 | Feedback (2)