2012-04-07 37 views
0

我想regExp测试两个'Hello'-s并返回true,但它只返回false,即使我找不到任何错误的代码。我该如何解决?还请指出代码有什么问题。Javascript正则表达式卷曲支架和测试问题

<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> 

回答

0

你忘了空间:

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

你原来的RE匹配 “HelloHello”,而不是两个OCCURENCES“你好”。

+0

谢谢队友。我完全忘记了这个空间。我认为你好,但我忘记了空间。不管怎么说,还是要谢谢你。 – LastGod 2012-04-07 09:27:47

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 
+0

你也是有效的人。 – LastGod 2012-04-07 09:28:02

+0

但有点复杂 – LastGod 2012-04-07 09:28:20