表单验证只允许 6 或 9 个数字?
Form Validation to Allow 6 or 9 numbers Only?
我有一个表单,其中有一个字段只接受访问代码的数字。访问代码是 6 位或 9 位数字。目前我正在使用
验证该字段
elseif (( ! is_numeric($values['access'])) || ! preg_match('/[0-9]{6,9}$/', $values['access']))
允许 6 到 9 个数字。我怎样才能只允许 6 或 9 个号码?
我猜大概是
elseif (( ! is_numeric($values['access'])) || ! preg_match('/[0-9]{6}[0-9]{9}$/', $values['access']))
但我们都知道那行不通。有人能指出我正确的方向吗?
(a|b)
将匹配 a 或 b。所以!
^(\d{6}|\d{9})$
将匹配 6 个数字或 9 个数字。
你可以在这里进行测试https://regex101.com/r/Chx10H/1/
更高效的方法,需要 27 步(接受答案 36 步):
^\d{6}(?:\d{3})?$
我有一个表单,其中有一个字段只接受访问代码的数字。访问代码是 6 位或 9 位数字。目前我正在使用
验证该字段elseif (( ! is_numeric($values['access'])) || ! preg_match('/[0-9]{6,9}$/', $values['access']))
允许 6 到 9 个数字。我怎样才能只允许 6 或 9 个号码?
我猜大概是
elseif (( ! is_numeric($values['access'])) || ! preg_match('/[0-9]{6}[0-9]{9}$/', $values['access']))
但我们都知道那行不通。有人能指出我正确的方向吗?
(a|b)
将匹配 a 或 b。所以!
^(\d{6}|\d{9})$
将匹配 6 个数字或 9 个数字。
你可以在这里进行测试https://regex101.com/r/Chx10H/1/
更高效的方法,需要 27 步(接受答案 36 步):
^\d{6}(?:\d{3})?$