2012-04-07 61 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