javascript - 用于验证手机号码的正则表达式

标签 javascript jquery regex

我在 Javascript 中使用正则表达式来验证手机号码。

我的条件是:

  1. 手机号码可以+60或+63或+62或+66或0开头
  2. 手机号码长度在9到13之间

我试过代码:

^(?:\+60|+63|+62|+66|0)[. ()-]*(?:\d[. ()-]*){10,11,12,13}$/;

但是我没有得到它。

示例手机号码是

+601126314441
01126342542
+631124445675
+661124445675
+621124445675
+60111243236
+62105273214
0105273214

最佳答案

像这样更新你的正则表达式:

/^(\+60|\+63|\+62|\+66|0)\d{9,13}$/gm

在 www.jsregex.com 上验证(不要忘记检查全局和多行选项)

Fiddle Example :)

Javascript:

var reg = /(\+60|\+63|\+62|\+66|0)\d{9,13}/m;
var numbers = ['+601126314441', '01126342542', '+631124445675', '+661124445675', '+621124445675', '+60111243236', '+62105273214', '0105273214'];
var matched = [];
for (var i = 0; i < numbers.length; i++) {
    if (reg.test(numbers[i])) matched.push(numbers[i]);
}
console.log(matched.toString());

关于javascript - 用于验证手机号码的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20836262/

相关文章:

javascript - 我如何知道哪个元素被点击?

javascript - (... 排除->\([\s\S]+\) ...) 的正则表达式?

php - 将字符串的第一个字母大写(前面有特殊字符)- PHP

javascript - 使用 Ramda 将多参数函数转换为无点样式

javascript - HTML 片段到 JS 字符串的预处理器

javascript - 相同的 RegExp 返回不同的结果 - 第一次正确结果,第二次为空

javascript - jQuery 链式函数和 "this": Where is my syntax incorrect in this example?

javascript - JQuery UI 自动完成,更改事件不会触发

javascript - jquery draggable 如何保持 x 约束并使拖动有效?

regex - 匹配 Google 表格中字符串末尾的部分文本