我的理解是,可以在JavaScript中使用两种方法中的任何一种用于不区分大小写的基于正则表达式的匹配:match(/pattern/i)
或match("pattern","i")
。我没有让第二种变体在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>
答案 0 :(得分:6)
不,这不是错误。 Firefox允许在flags
中使用String.match
参数,但正如Mozilla文档中所述(或者更确切地说,使用时需要注意 - this functionality is no longer even mentioned)它是非标准的,应该避免。而且,它通常效率较低。
如果您需要此功能,请改用new RegExp
。