正则表达式是使用单个字符串来描述、匹配一系列符合某个句法规则的字符串搜索模式。
正则语法:
var reg = /正则表达式/ig; //ig为修饰符
正则对字符串提供的功能:
reg.test(str) // 验证
str.search(reg) / str.match(reg) // 查询
str.replace(reg,newStr); // 替换
reg.exec(str) //exec一次只能返回一个结果
正则表达式的常用元字符:
. //可以匹配任何字符
\d //匹配0-9的所有数字
\D //匹配非数字
\s //匹配所有空白字符,包括空格、制表符、换行符、回车符等
\S //匹配所有非空白字符
\w //匹配所有的单词字符,包括0-9数字、26个英文字母和下划线
\W //匹配所有的非单词字符
正则表达式的常用限定符:
[abc] //查找方括号之间的任何字符
[0-9] //查找任何从0至9的数字
[a-z] //查找任何从小写a到小写z的字符
[A-Z] //查找任何从大写A到大写Z的字符
[A-z] //查找任何从大写A到小写z的字符
/\d{2}/ // 固定次数:2
/\d{2,4}/ // 指定范围:2~4
/\d{2,}/ // 指定范围:2~正无穷
/\d+/ // 指定范围:1~正无穷
边界符补充:
^:正则的开头
$:正则的结尾
正则表达式表单验证实例:
//判定一个邮箱:123456789@qq.com
var email =123456789@qq.com;
var reg=/^[0-9a-zA-Z_]+@[0-9a-zA-Z]+\.[a-zA-Z]$/;
console.log(reg.test(email));
//判断5-12位qq,非零开头
var qq="1234567890"
var reg=/^[1-9][0-9]{5,13}$/;
console.log(reg.test(qq));
// 11位的电话号码
//第一位数字为1,第二位为3-9,后面随便9位数
var tel="13658588686";
var reg=/^[1][3-9][0-9]{9}$/;
console.log(reg.test(tel));
//判定网址
var str = "http://www.12306.com";
var reg = /^(https?:\/\/)?([0-9a-z]{1,10}\.)?[0-9a-z]{2,9}(\.[a-z]{2,4}){1,2}$/;
console.log(reg.test(str));