首页 > 解决方案 > LARAVEL 电话以 05 或 06 开头“preg_match(): 未找到结束分隔符 '/'”

问题描述

我正在使用 LARAVEL 5.5,我想测试我的电话号码的正则表达式是否以 05 或 06 开头并且号码长度应为 9。

例如,如果号码是 068852123 或 0522321485。

下面是我的代码:

'telephone_1' => 'required|regex:/(05)|(06)[0-9]{8}/',

这段代码有什么问题?

标签: phpregexlaravel-5

解决方案


由于它以 05 或 06 开头,总长度为 9,因此正则表达式模式可以是

^0[56][0-9]{7}$

解释:

  • ^字符串的开头
  • 0一个数字为零

  • [56]从 5 或 6 中取一位数

  • [0-9]{7}从 0 - 9 取 7 位数字

  • $字符串的结尾。

PHP代码:

$phone_no = '068852123';
if (preg_match('/^0[56][0-9]{7}$/', $phone_no)) {
    echo 'Valid phone no';
} else {
    echo 'invalid phone no';
}

推荐阅读