原文链接:http://caibaojian.com/regexp-example.html

正则表达式(regular expression)是一个描述字符模式的对象。使用JavaScript正则表达式可以进行强大的模式匹配和文本检索与替换功能。

手机号码正则表达式验证。

  1. function checkPhone(){
  2. var phone = document.getElementById(\'phone\').value;
  3. if(!(/^1[3456789]\d{9}$/.test(phone))){
  4. alert("手机号码有误,请重填");
  5. return false;
  6. }
  7. }

或者

  1. function checkPhone(){
  2. var phone = document.getElementById(\'phone\').value;
  3. if(!(/^1(3|4|5|6|7|8|9)\d{9}$/.test(phone))){
  4. alert("手机号码有误,请重填");
  5. return false;
  6. }
  7. }

感谢 丐帮流寇 的提醒,我查了一下了解了“ 小括号就是括号内看成一个整体 ,中括号就是匹配括号内的其中一个”·

原来正则里面的中括号[]只能匹配其中一个,如果要匹配特定几组字符串的话,那就必须使用小括号()加或|,我还以为在中括号中也能使用或|符号,原来|在中括号里面也是一个字符,并不代表或。[3457]匹配3或者4或者5或者7,而(3457)只匹配3457,若要跟前面一样可以加或(3|4|5|7)。[34|57]匹配3或者4或者|或者5或者7.而(34|57)能匹配34或者57。

下面简单的解释一下:

^1(3|4|5|7|8)\d{9}$

表示以1开头,第二位可能是3/4/5/7/8等的任意一个,在加上后面的\d表示数字[0-9]的9位,总共加起来11位结束。

具体请参考这篇文章解说:JS最新手机号码检验正则表达式 (绝对能让你明白)

我猜你可能会喜欢关于JavaScript正则的文章:正则

  1. JavaScript中的正则表达式总结(大量的正则)
  2. JavaScript正则表达式(例子)

固定电话号码正则表达式

  1. function checkTel(){
  2. var tel = document.getElementById(\'tel\').value;
  3. if(!/^(\(\d{3,4}\)|\d{3,4}-|\s)?\d{7,14}$/.test(tel)){
  4. alert(\'固定电话有误,请重填\');
  5. return false;
  6. }
  7. }

身份证正则:

  1. //身份证正则表达式(15位)
  2. isIDCard1=/^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$/;
  3. //身份证正则表达式(18位)
  4. isIDCard2=/^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{4}$/;
  5. 身份证正则合并:(^\d{15}$)|(^\d{17}([0-9]|X)$)

其他

  1. //code from http://caibaojian.com/regexp-example.html
  2. 提取信息中的网络链接:(h|H)(r|R)(e|E)(f|F) *= *(\'|")?(\w|\\|\/|\.)+(\'|"| *|>)?
  3. 提取信息中的邮件地址:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
  4. 提取信息中的图片链接:(s|S)(r|R)(c|C) *= *(\'|")?(\w|\\|\/|\.)+(\'|"| *|>)?
  5. 提取信息中的IP地址:(\d+)\.(\d+)\.(\d+)\.(\d+)
  6. 提取信息中的中国电话号码(包括移动和固定电话):(\(\d{3,4}\)|\d{3,4}-|\s)?\d{7,14}
  7. 提取信息中的中国邮政编码:[1-9]{1}(\d+){5}
  8. 提取信息中的中国身份证号码:\d{18}|\d{15}
  9. 提取信息中的整数:\d+
  10. 提取信息中的浮点数(即小数):(-?\d*)\.?\d+
  11. 提取信息中的任何数字 :(-?\d*)(\.\d+)?
  12. 提取信息中的中文字符串:[\u4e00-\u9fa5]*
  13. 提取信息中的双字节字符串 (汉字):[^\x00-\xff]*

使用:

test()方法在字符串中查找是否存在指定的正则表达式,并返回布尔值,如果存在则返回true,否则返回false。

  1. var pattern = new RegExp(\'Box\',\'i\');
  2. var str = \'box\';
  3. alert(pattern.test(str)); //true
  4. var pattern = /Box/i;
  5. var str = \'box\';
  6. alert(pattern.test(str)); //true
  7. var pattern = /Box/i;
  8. var str = \'This is a box\';
  9. alert(pattern.test(str)); //true
2019.6.5新增16和19开头的手机号码段。

来源:前端开发博客

=========================================================================================

  1. function isPoneAvailable($poneInput) {
  2. var myreg=/^[1][3,4,5,7,8][0-9]{9}$/;
  3. if (!myreg.test($poneInput.val())) {
  4. return false;
  5. } else {
  6. return true;
  7. }
  8. }

这里的重点是这个正则表达式:

  1. var myreg=/^[1][3,4,5,7,8][0-9]{9}$/;

这个表达式的意思是:

1–以1为开头;

2–第二位可为3,4,5,7,8,中的任意一位;

3–最后以0-9的9个整数结尾。

本来只容13,15,17,18,开头的手机号,但是测试mm说有14开头的号码,所以添加了14;当然,如果以后要是发展成有16,或者19,之类的开头号码的话,在

  1. [3,4,5,7,8]

中添加即可。

 
  1. // 判断是否为手机号
  2. isPoneAvailable: function (pone) {
  3. var myreg = /^[1][3,4,5,7,8][0-9]{9}$/;
  4. if (!myreg.test(pone)) {
  5. return false;
  6. } else {
  7. return true;
  8. }
  9. },
  10. // 判断是否为电话号码
  11. isTelAvailable: function (tel) {
  12. var myreg = /^(([0\+]\d{2,3}-)?(0\d{2,3})-)(\d{7,8})(-(\d{3,}))?$/;
  13. if (!myreg.test(tel)) {
  14. return false;
  15. } else {
  16. return true;
  17. }
  18. },

版权声明:本文为xiaoshen666原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/xiaoshen666/p/11200961.html