東京都最強うんぬん
重箱の隅。
(function(e){ e.innerHTML = e.innerHTML.replace( /東京都?([\u3200-\u4DBF\u4E00-\u9FFF\uF900-\uFAFF]+)/g, '首都$1東京' ) })(document.body)漢字を判定する正規表現が工夫のしどころでしょうか。[一-龠]はUnicode時代にはちょっと古い。grep CJK /usr/local/lib/perl5/5.10.0/unicore/Blocks.txtが参考資料代わりです。
404 Blog Not Found:javascript+regexp - ていうか首都最強東京bookmarklet
\u3200-\u4DBF とあるけど、U+3200-32FF は Enclosed CJK Letters and Months、U+3300-33FF は CJK Compatibility なので、漢字以外の「東京㈱㊙」や「東京㌨㍍」なんかも「首都㈱㊙東京」や「首都㌨㍍東京」になってしまう。正確には \u3400-\u4DBF。
(…略…) [\u4E00-\u9FFF] だと、追加漢字面の漢字にマッチしないわけで。
漢字1文字にマッチさせる場合は、[\u4E00-\u9FFF]|[\uD840-\uD87F][\uDC00-\uDFFF]複数文字にマッチさせる場合は、
[\u4E00-\u9FFF\uD840-\uD87F\uDC00-\uDFFF]+と書くべきなんじゃないかなーと思った。
JavaScript で任意の漢字にマッチする正規表現を書く - kazuhoのメモ置き場
これならSIPもカバーするけど、逆にBMPの拡張A(U+3400-4DBF)と互換漢字(U+F900-FAFF)が抜けてしまっているので、
[\u3400-\u4DBF\u4E00-\u9FFF\uF900-\uFAFF]|[\uD840-\uD87F][\uDC00-\uDFFF]
[\u3400-\u4DBF\u4E00-\u9FFF\uF900-\uFAFF\uD840-\uD87F\uDC00-\uDFFF]+
とでもすりゃいいんじゃないでしょうか。よく知らんけど。