Entries

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

SafariのRegExp

タグ: Mac Safari JavaScript

このBlogのコードの大半は、SyntaxHighlighter によって動的に色付けされる(JavaScriptが有効な場合)。
ところがこの色付け、何故かSafariでは思った通りにならないことがある。

例えばこのコード。

/**
 * hogehoge
 */
// hogehoge
/**
 * ほげほげ
 */
// ほげほげ

Firefox 2.0.0.12 ではこのように表示される。
Firefox

しかし Safari 3.0.4 だと
Safari
日本語を含むC言語形式のコメントが色付けされない

SyntaxHighlighter におけるC言語形式コメントの正規条件は以下の通り。

MultiLineCComments : new RegExp('/\\*[\\s\\S]*?\\*/', 'gm'),

Safariの RegExp\S を日本語にマッチさせないのだろうか?
いくつかパターンを立てて検証してみる。

str ="/*ABCあいう*/";
document.write(str.match('/\\*[\\s\\S]*?\\*/','gm') + '<br />');
document.write(str.match('/\\*[\\S]*?\\*/','gm') + '<br />');
document.write(str.match('/\\*\\S*?\\*/','gm') + '<br />');
document.write(str.match('/\\*[ういあ\\S]*?\\*/','gm') + '<br />');
document.write(str.match('/\\*[うい\\S]*?\\*/','gm') + '<br />');
document.write(str.match('/\\*\\D*?\\*/','gm') + '<br />');
document.write(str.match('/\\*[ういあ\\D]*?\\*/','gm') + '<br />');
document.write(str.match('/\\*[うい\\D]*?\\*/','gm') + '<br />');

せっかくなので、今回はここ(↓)にスクリプトを埋め込んでおこう。



どうだろう。
「/*ABCあいう*/」が8行続いただろうか。

Safari 3.0.4 の結果はこうだった。


null
null
/*ABCあいう*/
/*ABCあいう*/
null
/*ABCあいう*/
/*ABCあいう*/
null


この結果から考えるに、どうやら Safari 3.0.4 では、「 [] の中のエスケープシーケンスは日本語にマッチングしない」ようだ。

スポンサーサイト

コメント

コメントの投稿

コメントの投稿
管理者にだけ表示を許可する

トラックバック

[T6] Safari 3.1

一週間で直るなんて/(^o^)\
トラックバック URL
http://idlysphere.blog66.fc2.com/tb.php/87-d7654def
この記事にトラックバックする(FC2ブログユーザー)

Appendix

タグ

Blog内検索

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。