私の理解では、JavaScriptで正規表現にマッチする大文字と小文字を区別しない正規表現には、次の2つの方法のいずれかを使用できます:
match(/ pattern/i)
または match( "pattern"、
。私は2番目のバリエーションがChromeで動作するようにはなっていません。 (私はChromium
"i")
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
を使用してください。