Chromeは正しく処理されますか?

私の理解では、JavaScriptで正規表現にマッチする大文字と小文字を区別しない正規表現には、次の2つの方法のいずれかを使用できます:
match(/ pattern/i)または match( "pattern"、
"i")
。私は2番目のバリエーションがChromeで動作するようにはなっていません。 (私はChromium
14.0.835.202を使用しています)。これはChromeのバグですか? (またはユーザーエラー?)

Firefoxでこのコードを実行すると、Hello WorldとHello Worldが表示されます。
Chromeでは、Hello Worldを取得できません。

<html>
<head>
</head>
<body>

<input type="button" id="button" value="Click me!" onclick="buttonClick()" />

</body>

<script language="javascript">
function buttonClick()
{
  str="Hello World"
  alert(str.match(/hello world/i))
  alert(str.match("hello world","i"))
}
</script>
</html>
ベストアンサー

いいえ、バグではありません。 Firefoxでは、 String.match
flags パラメータを使用することができますが、Mozilla
Documentationに記載されているように(または使用
rel=”nofollow”>この機能はもはや言及されていません
と書かれています)、それは非標準的です。避けるべきである。また、通常はそれほど効率が悪いです。

この機能が必要な場合は、代わりに new RegExp を使用してください。

コメントする

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です