2010-08-23 54 views
1

我想正則表達式匹配當且僅當該字符串沒有家庭工作(但不我的家人,例如)。我的Javascript正則表達式有什麼問題?

爲什麼下面的代碼會導致「匹配」?爲什麼^$不起作用?

var regex = new RegExp("^none|family|work$"); 
var str = "my family"; 
document.write(regex.test(str) ? "match" : "no"); 

回答

4

|經營者有優先級很低,所以你必須有效(^none)|(family)|(work$),它匹配任何與none開始,包含familywork結束。

使用這個代替:

^(none|family|work)$ 
+0

非常感謝! – 2010-08-23 11:54:45

4

你的正則表達式匹配要麼

  • 「無」的字符串的開頭;
  • 「家族」字符串中的任何位置;
  • 「工作」在字符串的末尾。

你可能想要什麼,而不是爲

var regex = new RegExp("^(none|family|work)$"); 
+0

非常感謝! – 2010-08-23 11:54:17