2011-04-27 61 views
1

我對正則表達式還沒有很好的處理,但是我希望有人能夠幫助我。我發現這個表達在這裏,它幾乎正是我需要的,但我需要給它添加PHP正則表達式在{x,y}之間

/^[A-Za-z][A-Za-z0-9]*(?:_[A-Za-z0-9]+)*$/ 

我需要確保提交的字符串是{4,20} 4到20個字符之間,我已經看了其他更簡單的例子,但這個表達式有點複雜。在這種情況下,我會在哪裏添加「{4,20}」?

回答

6

你可以在開始添加positive lookahead檢查字母右數像

/^(?=.{4,20}$)[A-Za-z][A-Za-z0-9]*(?:_[A-Za-z0-9]+)*$/ 
+0

感謝您的解決方案和資源。我會看看。 – aph107 2011-04-27 09:22:37

3

這裏有一個快速的解決辦法,將在您需要強制執行字符串長度的任何情況下工作,不管是正則表達式:

/^(?=.{4,20}$)[A-Za-z][A-Za-z0-9]*(?:_[A-Za-z0-9]+)*$/ 

您也可以使用此前瞻技術,以累積多個正則表達式。

+0

謝謝正是我需要的! :) – aph107 2011-04-27 09:20:09

-1

你試過:

/^([A-Za-z][A-Za-z0-9]*(?:_[A-Za-z0-9]+)*){4,20}$/ 
+0

這並不好。 – 2011-04-27 09:20:02

+0

沒有那個運氣,謝謝。 – aph107 2011-04-27 09:21:26

+0

@Alin Purcaru是的,你的解決方案看起來更清潔 - 以前沒有真正使用過先行技術:) – 2011-04-27 09:32:05