正则表达式以及表单验证(正则表达式)
一、正则表达式
正则表达式是一种字符串匹配的模式,可以用来检查一个串是否含有某种子串、将匹配的子串替换或者从某个串中取出符合某个条件的子串等。
常用的字符有:
普通字符: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));
二、正则表达式的表单验证