【问题标题】:check if 5 digit number is available in a string检查字符串中是否有 5 位数字
【发布时间】:2012-08-16 03:35:45
【问题描述】:
$st1='dsdsdsd 97537 sdsdd dsddd';
$st2='fdsf 23e  sdsd 434  432443454';
$st3='fdf97537 ds344dsddd';

我想检查字符串中是否有 5 位数字。

st1-- 有 5 位数字

st2---不是

st3-- 有 5 位数字

【问题讨论】:

  • 如果找到一个以上的五位数怎么办?
  • 只能有一个或多个5位数字

标签: php search expression


【解决方案1】:

一个简单的正则表达式就可以完成这项工作。

preg_match('/\d{5}/', $input)

另见http://www.php.net/preg_match

【讨论】:

  • 字边界不匹配fdf97537
  • @sachleen 我刚刚注意到并删除了我的评论 - 在下面添加了一个有效答案。
【解决方案2】:

preg_match()preg_match_all() 试试这个正则表达式

preg_match("/\b[^\d]*\d{5}[^\d]*\b/", $str);

【讨论】:

    【解决方案3】:

    假设每个要检查的元素是否为五位数字,在字符串中用空格分隔。因此,您可以使用explode 函数将字符串转换为子字符串数组。接下来,您可以使用is_numeric 函数来检查它是否是数字,并检查该子字符串是否为五长。你也可以使用正则表达式。

    这里的 RegEx 要好得多。当我看到@Matt 的答案满足这些要求时,我的 cmets 将是不必要的。

    【讨论】:

    • 正则表达式是这里的方法。 explode() 结合字符串长度检查太重了。
    猜你喜欢
    • 2019-03-10
    • 1970-01-01
    • 2014-05-30
    • 2023-03-31
    • 1970-01-01
    • 2017-11-28
    • 1970-01-01
    相关资源
    最近更新 更多