【JavaScript】IE6のString.split()の不具合と対策
具体的には、例えば『javascript:alert(',,'.split(/,/).length)』を実行すると、結果が「0」になってしまいます(正しくは「3」)。
対策としては、次のようにして String.prototype.split を置換してやるとよいかもしれません。
↓
【2007/12/11追記】
他にもいろいろ問題がありそうなので(例えばString.split()のブラウザでの差異 - ?D of K)、ちゃんとした対策が必要なら、『JavaScript split Inconsistencies & Bugs: Fixed!』を使用するのがよいと思われます。
String.prototype.split=function(sreg){
var text=this, reg=(typeof sreg=='string')?RegExp(sreg,'g'):RegExp(sreg.source,'g'+((sreg.ignoreCase)?'i':'')+((sreg.multiline)?'m':''));
if (!reg.source) return [text];
var sindex=0, eindex, elms=[];
do {
reg.exec(text);
eindex=reg.lastIndex;
elms.push(text.substring(sindex,(eindex)?eindex:text.length).replace(sreg,''));
sindex=eindex;
} while (sindex);
return elms;
}
}
IE6限定ということで、
elms.push(text.substring(sindex,(eindex)?eindex:text.length).replace(sreg,''));の部分は
elms.push(text.substring(sindex,(eindex)?RegExp.index:text.length));に変えた方が速くなりそうですね。
2007/12/08(土) 16:22 | 固定リンク
| 記事の編集(管理者用)
「パソコン・インターネット」カテゴリの記事
- 5年以上も気付かない振り(2012.02.14)
- 探しものって、みつけにくいものですね…(2012.02.13)
- Norton Internet Securityでエラー: 「3043,1」(2011.07.13)
- アンケート:ブログ等で「続きを読む」リンクを見たら…(2010.11.05)
- 読者参加型Web小説作成サイトを試作してみた:『胡蝶の夢語り』(Hermit's Adventures in Wonderland)(2010.10.22)
「覚書」カテゴリの記事
- Norton Internet Securityでエラー: 「3043,1」(2011.07.13)
- 終わりを惜しむ6タイトル(2010.12.19)
- ココでも:ココログ広場ユーザーのブログをキーワードで検索するサービスを試作(2010.10.29)
- ココログ用ReadMore:トップページの『》 続きを読む』をその場で展開するスクリプト(2010.11.06)
- ココだい:ココログ広場 ≫ つぶやきのお題をキーワードで検索するサービスを試作(2010.11.07)

