我想允許數字和以下字符:-, +, (,)$phone = '1(54)+45-21';
var_dump(preg_match('/^[\(\)0-9+-]+$/', $phone));嗯,效果很好。但我也想在每個字符之間允許空格。所以 的值$phone可能是這樣的,+45 (548) - 541 55 11但它也可以在沒有任何空格的情況下有效。如何允許可選空間?
1 回答

PIPIONE
TA貢獻1829條經驗 獲得超9個贊
試圖預測人們可以選擇寫電話號碼的所有荒謬方式只會侵蝕你的理智。
$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('/^\+?\d{11}$/', $phone_bare);
var_dump($phone, $phone_bare, $result);
輸出:
string(17) "+1 (234) 567-8900"
string(12) "+12345678900"
int(1)
- 1 回答
- 0 關注
- 145 瀏覽
添加回答
舉報
0/150
提交
取消