2013-07-04 51 views
2

我對正則表達式沒有深入的瞭解(我今天剛學過)。我有一個網站,我想請問我如何在形式創造一個6位數字的安全碼之一:使用preg_match檢查字符串的結構

1. LNLNLN  
or  
2. NLNLNL 

Where L = Letter and N = Number 

我不知道要做到這一點的最好辦法,但我一直在使用preg_match()人看過驗證數據。我發現使用這個正則表達式工作:

^[a-zA-Z][0-9][a-zA-Z][0-9][a-zA-Z][0-9]|^[0-9][a-zA-Z][0-9][a-zA-Z][0-9][a-zA-Z] 

但這似乎很長。我想知道是否有任何方法可以更容易地檢查這個問題?
謝謝

+0

希望你知道這是不是特別的當然是「安全」的,可能被罰款取決於其如何使用 – 2013-07-04 01:20:17

+0

但是是不是有這個安全碼,頗有可能的組合?我在製作在線應用程序方面還很新。 –

+0

問題是,你使用它的目的是什麼?強制必須是字母必須是數字固定長度6減少安全性(gueesability)可以是任意長度 – 2013-07-04 01:27:08

回答

4

使用repetition

^([a-zA-Z][0-9]){3}|^([0-9][a-zA-Z]){3} 

然後escape sequence \ d

^([a-zA-Z]\d){3}|^(\d[a-zA-Z]){3} 

隨着我option你可以寫連這個。

^([a-z]\d){3}|^(\d[a-z]){3} 

preg_match('/^([a-z]\d){3}|^(\d[a-z]){3}/i', $string) 
+1

使用'\ d'會使它小一點 – 2013-07-04 01:19:14

+0

非常感謝。你的代碼比我的簡單得多。我將繼續學習如何製作更簡單的代碼。 –

+1

當然a-z和/我更小:-) – 2013-07-04 01:25:13

相關問題