【发布时间】:2011-07-28 21:35:04
【问题描述】:
我需要一个php函数来验证一个字符串,所以它只能在前面包含数字和加号(+)。
例子:
+632444747 将返回 true
632444747 将返回 true
632444747+ 将返回 false
&632444747 将返回 false
如何使用正则表达式实现这一点?
谢谢。
【问题讨论】:
-
在这里试试regexr.com
我需要一个php函数来验证一个字符串,所以它只能在前面包含数字和加号(+)。
例子:
+632444747 将返回 true
632444747 将返回 true
632444747+ 将返回 false
&632444747 将返回 false
如何使用正则表达式实现这一点?
谢谢。
【问题讨论】:
<?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)。
【讨论】:
类似的东西
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
【讨论】:
+49 123456