【问题标题】:php regex number and + sign onlyphp 正则表达式数字和 + 仅符号
【发布时间】:2011-07-28 21:35:04
【问题描述】:

我需要一个php函数来验证一个字符串,所以它只能在前面包含数字和加号(+)。

例子:

+632444747 将返回 true
632444747 将返回 true
632444747+ 将返回 false
&632444747 将返回 false

如何使用正则表达式实现这一点?

谢谢。

【问题讨论】:

标签: php regex


【解决方案1】:
<?php

var_dump(preg_match('/^\+?\d+$/', '+123'));
var_dump(preg_match('/^\+?\d+$/', '123'));
var_dump(preg_match('/^\+?\d+$/', '123+'));
var_dump(preg_match('/^\+?\d+$/', '&123'));
var_dump(preg_match('/^\+?\d+$/', ' 123'));
var_dump(preg_match('/^\+?\d+$/', '+ 123'));

?>

只有前 2 个为真 (1)。其他都是假的(0)。

【讨论】:

    【解决方案2】:

    类似的东西

    preg_match('/^\+?\d+$/', $str);
    

    测试一下

    $strs = array('+632444747', '632444747', '632444747+', '&632444747');
    foreach ($strs as $str) {
        if (preg_match('/^\+?\d+$/', $str)) {
            print "$str is a phone number\n";
        } else {
            print "$str is not a phone number\n";
        }
    }
    

    输出

    +632444747 is a phone number
    632444747 is a phone number
    632444747+ is not a phone number
    &632444747 is not a phone number
    

    【讨论】:

    • Mikel:这就像为可以从手册中读取的内容提供答案。 RTFM,我会说。
    • OP 请求一个函数。把这个答案的重点放在:function isValidPhoneNo($str) {} :)
    • 注意:如果数字中有空格,例如: +49 123456
    猜你喜欢
    • 2012-02-19
    • 1970-01-01
    • 2016-12-19
    • 2013-05-26
    • 2014-07-31
    • 1970-01-01
    • 2016-12-12
    • 1970-01-01
    • 2016-09-12
    相关资源
    最近更新 更多