0

我希望 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>
4

2 回答 2

0

你忘了空格:

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

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

于 2012-04-07T07:15:53.733 回答
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
于 2012-04-07T07:06:00.440 回答