马来西亚手机 phone 号码的正则表达式

Regex for Malaysian mobile phone Number

这是我目前为 eg:01xxxxxxxx:

使用的正则表达式模式
<input class="mdl-textfield__input" name="mobile_number" type="text" pattern="^(\+?6?01)[0-46-9]-*[0- 
9]{7,8}$">

我试图不仅允许 10 位数字,而且还允许其他格式,如 11 位数字 (01xxxxxxxxx) 和办公室号码 eg:0xxxxxxxx。

谁能帮帮我?

您可以使用替代 | 来匹配可选的前缀部分,如果不需要则省略匹配连字符,作为第二个替代匹配 0 后跟 8 位数字。

pattern属性是隐式锚定的,所以可以省略^$

\+?6?(?:01[0-46-9]\d{7,8}|0\d{8})

模式匹配:

  • \+?6? 匹配一个可选的 + 和一个可选的 6
  • (?: 交替的非捕获组
    • 01[0-46-9]\d{7,8} 匹配 01 然后一个除 5 和 7-8 位数字
    • |
    • 0\d{8}匹配一个0和8位数字
  • )关闭非捕获组

Regex demo