String.prototype.match の返り値が IE8 だけ異なる
1490 ワード
JavaScript の String.prototype.match で、マッチしなかった ()
の値が IE だけ異なる。
// foo または数字にマッチし、数字だったら後方参照したい
pattern = /foo|(\d+)/;
// () にマッチする場合は期待通り
number = "123";
number.match(pattern); // ["123", "123"]
// () にマッチしない場合は IE だけ異なる
text = "foo";
text.match(pattern);
// ["foo", undefined] (Chrome 23, Safari 6, Firefox 17, Opera 12, IE9)
// ["foo", ""] (IE8)
IE10 は環境が手元にないので未検証。
ECMAScript 3 / 5 では undefined になるのが正しい挙動 (コメント参照) で、IE8 の挙動がおかしい。
Author And Source
この問題について(String.prototype.match の返り値が IE8 だけ異なる), 我々は、より多くの情報をここで見つけました https://qiita.com/labocho/items/0f766874f907e5a67aaf著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .