在每个字符之间允许空格[重复]
Posted
技术标签:
【中文标题】在每个字符之间允许空格[重复]【英文标题】:Allow spaces between each chracter [duplicate] 【发布时间】:2020-01-14 19:05:20 【问题描述】:我想允许数字和以下字符:-
、+
、(
、)
$phone = '1(54)+45-21';
var_dump(preg_match('/^[\(\)0-9+-]+$/', $phone));
嗯,效果很好。但我也想在每个字符之间允许空格。因此$phone
的值可能类似于+45 (548) - 541 55 11
,但不带任何空格也是有效的。
如何允许可选空格?
【问题讨论】:
也许这个页面有帮助***.com/questions/123559/… 只是在字符列表中添加一个空格? 我已经用/^[()0-9+-? ]+$/
试过了。这对我有用。
【参考方案1】:
试图预测人们写电话号码的所有荒谬方式只会削弱你的理智。
$phone = '+1 (234) 567-8900';
// 1. Delete all non-consequential characters.
$phone_bare = preg_replace('/[^\d+]/', '', $phone);
// 2. Check against a simple, sane format.
// eg: optional +, 11 digits
$result = preg_match('/^\+?\d11$/', $phone_bare);
var_dump($phone, $phone_bare, $result);
输出:
string(17) "+1 (234) 567-8900"
string(12) "+12345678900"
int(1)
【讨论】:
以上是关于在每个字符之间允许空格[重复]的主要内容,如果未能解决你的问题,请参考以下文章