Javascript RegExp Curly Brace和测试问题

时间:2012-04-07 07:01:11

标签: javascript

我希望regExp测试两个'Hello'-s并返回true但它只返回false,即使我找不到我的代码有什么问题。我该如何解决?还请说明代码有什么问题。

<html>
<body>

<script type="text/javascript">

var str ="Hello Hello";
var patt = /(hello){2}/gi;
var result =patt.test(str);
document.write("Returned value: " + result); 
</script>
</body>
</html>

2 个答案:

答案 0 :(得分:0)

您可以使用match()方法搜索正则表达式和字符串之间的匹配项,然后返回匹配项。

   var result = "Hello hello".match(/Hello/gi); // Array { 0="Hello", 1="hello"}

   result.length // 2

如果您想使用搜索而不是匹配:

   "hello hello ".search(/(hello ?){2}/gi); // it returns 0 when it find two occurrences of hello
                                            // if not it returns -1

答案 1 :(得分:0)

你忘记了空间:

var patt = /(hello ?){2}/gi;

您的原始RE与“HelloHello”匹配,但不是两次出现“Hello”。