正则表达式以及表单验证(正则表达式)

正则表达式以及表单验证(正则表达式)

一、正则表达式
正则表达式是一种字符串匹配的模式,可以用来检查一个串是否含有某种子串、将匹配的子串替换或者从某个串中取出符合某个条件的子串等。

常用的字符有:

普通字符:1.\n 匹配换行 2.\s 匹配任何空白字符	 3.\S匹配任何非空白字符

特殊字符:1.$ 匹配输入字符串的结尾 \$         2.()匹配字符串里的字表达式,匹配自身	
		     3.	*匹配前面的子表达式,0次或多次     4.	+ 匹配前面的子表达式 1次或多次
				     5.	   .匹配单字符               6.	[]  匹配的是表达式的开始和结尾
				     7.? 匹配前面的子表达式0次或1次     8.\ 匹配特殊字符
				     9.^ 匹配输入字符串的开始位置,除非在方括号表达式中使用,此时它表示不接受该字符集合。     
				     10.{} 限定符      11.| 取两个之间一个 

限定符:* 0~多	       	+ 1~多		        ?0或1次
   {n}匹配前面的子表达式n次  {n,}  匹配至少n次   {n,m}  最少匹配n  最多m
    \d 匹配数字   \D 匹配数字

正则两种使用方式: 字符串使用 对象使用
alert( m.match(str1)); match 返回值为值 正常 为null 不正常
var reg = new RegExp(str1);
alert(reg.test(m)); 正则对象 返回值为true false

关于正则表达式多基础例子:

  • 手机号:
    var str1=/^[1]{1}[3,5,7,8,9]{1}[\d]{9}$/;
        var m="18716702207";
        alert(m.match(str1))
  • 邮箱:
    var email=/^[a-zA-Z\d]+([._-]{1}[a-zA-Z\d]+)*@([a-zA-Z\d]+[.])+[a-zA-Z\d]{2,4}$/
        * 0次或多次   + 1次或多次   ()匹配的是表达式内的子表达式 []匹配表达式的开始和结束  \d表示0-9
        {}限定符
        var m="[email protected]"
        alert(m.match(email))
  • 验证纯数字
		var s=/^\d+$/
        var m="258099s"
        var reg=new RegExp(s);对象验证
        reg.test(m);
        alert( reg.test(m));
  • 验证没有数字
		var s=/^\D+$/
        var m="jkdjfidfidhfkjfj"
        alert(m.match(s))
  • 正则表达式替换字符串中的字符
		var s="ajajajabmkiii"
        var m= s.replace(/a/g,"m");;
        alert(m)
        输出结果:mjmjmjmbmkiii
        g 为全局变量,代表在全局中找,如果没有g,只会替换一个
  • 替换空格
		var s="j d   u l"
        var m= s.replace(/\s/g,"");
        alert(m)
        输出结果:jdul
  • 在字符里面取值
		var s="akdjkdd345ak"
        var m=/\d+/g;
        console.log(s.match(m)[0])
        输出结果:345

		var s="akdjkdd345ak"
        var m=/\D+/g;
        console.log(s.match(m)[0])
        输出结果:akdjkdd
  • 身份证验证
		s = /^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$|^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}([0-9]|X)$/;
        var m = "615321200011163823";
        alert(m.match(s));

二、正则表达式的表单验证

猜你喜欢

转载自blog.csdn.net/weixin_43175246/article/details/86753808