我注意到apple-juice
應該根據你的參數進行匹配,但是apple juice
呢?我假設,如果你正在驗證apple juice
你仍然希望它失敗。
所以 - 允許建立的字符集算作一個「邊界」:
/[^-a-z0-9A-Z_]/ // Will match any character that is <NOT> - _ or
// between a-z 0-9 A-Z
/(?:^|[^-a-z0-9A-Z_])/ // Matches the beginning of the string, or one of those
// non-word characters.
/(?:[^-a-z0-9A-Z_]|$)/ // Matches a non-word or the end of string
/(?:^|[^-a-z0-9A-Z_])(apple|orange|juice)(?:[^-a-z0-9A-Z_]|$)/
// This should >match< apple/orange/juice ONLY when not preceded/followed by another
// 'non-word' character just negate the result of the test to obtain your desired
// result.
在大多數正則表達式的口味\b
算作一個「單詞邊界」,但「單詞字符」標準列表沒有按」 t包括-
,所以你需要創建一個自定義的。它可以配合/\b(apple|orange|juice)\b/
如果你不是試圖趕上-
,以及...
如果您只是在測試「一個字」測試你可以用更簡單的去:
/^(apple|orange|juice)$/ // and take the negation of this...
你在用什麼語言?也應該「橙汁」相匹配還是失敗? – gnarf 2009-12-01 13:18:14