gpt4 book ai didi

php - 验证新西兰电话号码的正则表达式

转载 作者:可可西里 更新时间:2023-11-01 13:26:52 24 4
gpt4 key购买 nike

我需要一个适用于 PHP 和 JavaScript 的正则表达式来验证新西兰本地、移动和免费电话 (0800) 电话号码。

Matches:     (09)1234567, (021)123456, (021)1234567, (027)123456, 0800 12345, 0800 1234578
Non-Matches: (09)123456 , (021)12345 , (031)1234567, (027)12345 , 0800-1234, 0800123456789

下面是我在网上找到的一个正则表达式,但由于某些原因似乎不起作用:

(^([0]\d{1}))(\d{7}$)|(^([0][2]\d{1}))(\d{6,8}$ )|([0][8][0][0])([\s])(\d{5,8}$)

有人可以帮忙解释上面的表达式吗?提前感谢您的帮助。

更新 - 我已经解决了,解决方案如下:

$phone_number = preg_replace('/[^\d\(\)]/', '', $phone_number);
$pattern = '/^(\((03|04|06|07|09)\)\d{7})|(\((021|022|025|027|028|029)\)\d{6,8})|((0508|0800|0900)\d{5,8})$/';

最佳答案

为什么要用那些括号和方括号?

^(\(0\d\)\d{7}|\(02\d\)\d{6,8}|0800\s\d{5,8})$

您不必将所有内容都放在一对括号中即可使其正常工作。那是巫毒编程。例如,([0][8][0][0]) 就是 0800

关于php - 验证新西兰电话号码的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9850428/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com