【问题标题】:Regular Expression,Regex PHP [closed]正则表达式,正则表达式 PHP [关闭]
【发布时间】:2013-02-17 01:09:38
【问题描述】:

我需要验证以下格式的字符串:

数字、字母和_
最小长度 4 和最大长度 15
至少 1 个字母 [a-z]

例如:

有效:

  • ABCD
  • ABCDE
  • ABC_
  • 01A_
  • A12345_BCDW1234

无效:

  • ABC
  • 01A
  • A12345_BCDW123411
  • _1212392034
  • _
  • A_1

我尝试了几次,但都没有成功。

【问题讨论】:

  • 请让你的标题更具体,并给我们一些例子。
  • I made a couple tries but none work. 不会在这里工作。展示你的尝试,这样我们就可以教你哪里出错了。

标签: php regex expression


【解决方案1】:

我不认为你可以在一个正则表达式中做到这一点,长度 {4,15} 和“必须包含一个字母”的约束的验证必须独立完成。

$test_inputs = array(
      'ABCD', 'ABCDE', 'ABC_', '01A_', 'A12345_BCDW1234'
    , 'ABC', '01A', 'A12345_BCDW123411', '_1212392034', '_', 'A_1'
);

$res = array();
foreach($test_inputs as $input)
{
    $res[$input] = (preg_match('/^[A-Z0-9_]{4,15}$/i', $input) && preg_match('/[A-Z]/i', $input));
}

var_dump($res);

【讨论】:

  • “我不认为你可以在一个正则表达式中做到这一点”这真的是我的问题......谢谢。
猜你喜欢
  • 2017-11-13
  • 2015-04-27
  • 2016-08-08
  • 2016-09-28
  • 2010-09-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-08
相关资源
最近更新 更多