2011-08-09 16 views
1

我使用下面的正則表達式Kohana的驗證正則表達式 - 必須有低,

->rule('password','regex', array(':value', "(?=.*?[a-z])(?=.*?[A-Z])")) 

但Kohana的是抱怨說「(」是一個未知的修飾上字符是有另一種方式正則表達式的字符串,以確保。它有1頁或多個較低和1個或多個上的信嗎?

回答

2

PHP預計額外定界符其正則表達式(和誤以爲第一組括號爲您的分隔符)。使用

->rule('password','regex', array(':value', "/(?=.*?[a-z])(?=.*?[A-Z])/")) 

也許將它錨定到字符串的開頭。這樣的正則表達式將只測試一次,如果它失敗了,沒有一次的字符串中的每個字符:

->rule('password','regex', array(':value', "/^(?=.*?[a-z])(?=.*?[A-Z])/")) 
+0

謝謝,我只是固定它:d – xylar