2013-07-04 15 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

相关问题