JS利用正则表达式校验手机号

JS利用正则表达式校验手机号

由于项目需求,需要在前端实现手机号码的校验。当然了,对于基本的格式校验应该放在客户端进行,而不需要再将待校验的手机号发送至服务端,在服务端完成校验,然后将校验结果返回给客户端,客户端根据返回的结果再进行进一步的处理。如此反而复杂化了处理过程。

其实,处于安全考虑,应该在服务端进行二次校验。以下为在客户端的JS中校验手机号码格式的代码:

源代码

  1. function validatemobile(mobile)

  2.  

    {

  3.  

    if(mobile.length==0)

  4.  

    {

  5.  

    alert(‘请输入手机号码!‘);

  6.  

    document.form1.mobile.focus();

  7.  

    return false;

  8.  

    }

  9.  

    if(mobile.length!=11)

  10.  

    {

  11.  

    alert(‘请输入有效的手机号码!‘);

  12.  

    document.form1.mobile.focus();

  13.  

    return false;

  14.  

    }

  15.  

  16.  

    var myreg = /^((13[0-9])|(14[5|7])|(15([0-3]|[5-9]))|(18[0,2,3,5-9]))\\d{8}$/;

  17.  

    if(!myreg.test(mobile))

  18.  

    {

  19.  

    alert(‘请输入有效的手机号码!‘);

  20.  

    document.form1.mobile.focus();

  21.  

    return false;

  22.  

    }

  23.  

    }

注:JS中正则表达式的注意事项

在JS中//之间不需要转义!

常规的正则表达式的创建可用直接量,即斜杠 “/” 括起来的字符。但在要求参数变化的环境下,RegExp()构造函数是更好的选择:

var reg1 = /‘\w+‘/g;

var reg2 = new RegExp(‘\‘\\w+\‘‘,‘g‘);

对比两种创建方式,RegExp中的第一个参数为要创建的正则字符串,一方面注意,因为不是直接量的表示形式,因此不用斜杠“ / ”括起来了;而是字符串中必须要对引号“ ‘ ”和转义符号“ \ ”进行二次转义。

此外,无论是直接量还是RegExp()构造函数,都是生成了新的RegExp对象,并将其赋值给变量。

在《Javascript权威指南》一书中讲到,对于正则表达式的直接量,ECMAscript 3规定在每次它时都会返回同一个RegExp对象,因此用直接量创建的正则表达式的会共享一个实例。直到ECMAScript 5才规定每次返回不同的实例。

各浏览器中,IE一直遵守 ECMAScript 5中的规定,其他浏览器的较老版本则遵循 ECMAScript 3的规定。因此在实际应用中,采取构造函数创建的方法比较安全,或者在使用lastIndex属性时要记得归0。

再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!希望你也加入到我们人工智能的队伍中来!http://www.captainbed.net

原文地址:https://www.cnblogs.com/shaoye007/p/10040924.html

时间: 2024-10-19 09:38:16

JS利用正则表达式校验手机号的相关文章

JS 利用正则表达式替换字符串

JS 利用正则表达式替换字符串 博客分类: JavaScript 学习资料 Java代码 收藏代码 JS 利用正则表达式替换字符串 var data = "123123,213,12312,312,3,Caat,cat,dsfsdfs,"; var reCat = /\bc([a-z]|[A-Z]|[0-9])*t\b/ig; //•g(全文查找):•i(忽略大小写):•m(多行查找) var res = data.replace(reCat,"AAA"); 输出:

利用正则表达式校验input框输入的字符类型

当做form表单校验时,如果只是想校验输入字符的类型,那么可以在input等标签中利用正则表达式进行校验,而不用通过调用js. 例如,校验输入字符是否为正整数: <input type='text' onkeyup="value=this.value.replace(/\D+/g,'')" /> 或者校验输入字符是否为字符串为数字(正整数+正浮点数): <input type='text' onkeyup="value=this.value.replace(

Js 利用正则表达式和replace函数获取string中所有被匹配到的文本

js的replace函数除了替换文本以外还有获取所有被正则表达式匹配到的文本的功能.这里以一个简单的案例来作为演示. 利用正则查找出所有被两个花括号包裹的字符串: var str = <div class="item">{{test}}{{aaa}}{{bbb}}</div> str.replace(reg,function (match,param,offset,string) { console.log(match,param,offset,string);

JS利用正则表达式验证字符串

1 function testNum(str){ 2 var reg = new RegExp("^[^0-9]*$");//从头到尾都不是数字 3 if(reg.test(str)){ 4 alert("没有数字!"); 5 }else{//有数字 6 var reg = new RegExp("^[0-9]*$");//从头到尾都是数字 7 if(reg.test(str)){ //从头到尾都是数字 8 alert("全是数字&qu

Java正则表达式校验QQ号码和邮箱地址格式

1 public class Demo02 { 2 public static void main(String[] args) { 3 Scanner sc = new Scanner(System.in); 4 String s = ""; 5 System.out.println("请输入一个字符串"); 6 s = sc.nextLine(); 7 // System.out.println(checkQQ(s)); 8 System.out.println

利用ajax,js以及正则表达式来验证表单递交

<!DOCTYPE html><html lang="en"> <head> <meta charset="utf-8"> <title>注册</title> <link rel="stylesheet" type="text/css" href="css/common.css"> <link rel="st

JS校验手机号 座机 邮箱 微信号

    // 校验手机号 1开头11位数字 function checkMobile(str) {     var re = /^1\d{10}$/     if(str.length==0){         $("#mobileTip").html("");      return; }else if (!re.test(str)) {         $("#mobileTip").html("手机号格式不正确");  

js常用正则表达式2

字符 含意 \ 做为转意,即通常在"\"后面的字符不按原来意义解释,如/b/匹配字符"b",当b前面加了反斜杆后/\b/,转意为匹配一个单词的边界. -或- 对正则表达式功能字符的还原,如"*"匹配它前面元字符0次或多次,/a*/将匹配a,aa,aaa,加了"\"后,/a\*/将只匹配"a*". ^ 匹配一个输入或一行的开头,/^a/匹配"an A",而不匹配"An a&quo

js里正则表达式详解

详细内容请点击 正则表达式中的特殊字符 字符 含意 \ 做为转意,即通常在"\"后面的字符不按原来意义解释,如/b/匹配字符"b",当b前面加了反斜杆后/\b/,转意为匹配一个单词的边界.-或-对正则表达式功能字符的还原,如"*"匹配它前面元字符0次或多次,/a*/将匹配a,aa,aaa,加了"\"后,/a\*/将只匹配"a*". ^ 匹配一个输入或一行的开头,/^a/匹配"an A",