一、概念
正则表达式:Regular Expression 。也叫作规则表达式,是按照一定的规则组成的一个表达式,这个表达式的作用是匹配字符串的。是由元字符或者是限定符组成的一个式子。
二、元字符
- .(点)表示的是:除了\n以为的任意的一个字符;
- []表示的是范围。
- [0-9]表示的是0-9之间的任意的数字。
- [1-7]表示的是1-7之间的任意数字。
- [1][0-9][0-9] 表示的是100-200之间的任何数字。
- | 表示或者
- () 表示分组,(((())))是四组,从最左边的括号开始算起,几个括号就有几组。([0-9])([a-z])(A-Z) 三组
- *表示前面的表达式出现了0次到多次。[0-9][a]+表示+前面的a可以一次都没出现,也可以出现了多次。
- +表示前面的表达式出现了1次到多次。[0-9][a]+表示+前面的a至少出现了1次,也可以出现了多次。
- ? 表示前面的表达式出现了0次到1次。最少0次,最多1次。(另一个含义是贪婪模式)
三、限定符
限定符:限定前面的表达式出现的次数,{}更加明确的限定了前面表达式出现的次数。
- {0,} 表示前面的表达式出现了0次到多次。和元字符* 一样;
- {1,} 表示前面的表达式出现了1次到多次。和元字符+ 一样
- {0,1} 表示前面的表达式出现了0次到1次。和元字符? 一样
- {5,10} 表示前面的表达式出现了5-10次;
- {3} 表示前面的表达式出现了3次,确定数字,一次都不能缺少或增加、
四、特殊符号
- ^ 表示的是以什么开始,或者取非
- 1 表示以小写字母开头
- [^a-z] 表示不是小写字母
- [^0-9a-zA-Z_] 表示特殊符号
- $ 表示以什么结束
- [0-9][a-z]$ 表示以小写字母结束
- ^$ 必须以什么开始,以什么结束
- 2[a-z]$ 表示以数字开头,以小写字母结束
- \d 数字中的任意一个
- \D 非数字中的任意一个
- \s 空白符中的任意一个
- \S 非空白符
- \w 非特殊符号:等价于 [0-9a-zA-Z_]
- \W 特殊符号:等价于[0-9a-zA-Z_]
- \b 单词的边界
正则表达式
五、正则表达式的小练习
5.1 邮箱的正则表达式
wenjing_pure@qq.com
[0-9a-zA-Z_.-]+[@][0-9a-zA-Z]+([.][a-zA-Z]+){1,2}
5.2 验证密码的强弱
document.getElementById("pwd").onkeyup=function(){
//每次抬起键盘的时候都要获取文本框的内容,根据内容判断密码的等级,从而显示其颜色。
}
//给我文本框的内容,判断密码的等级
function getVal(pwd){
var lvl=0;
if(/[0-9]+/.test(pwd)){
lvl++;
}
if(/[a-zA-Z]+/.test(pwd)){
lvl++;
}
//判断密码中有没有特殊符号
if(/[^0-9a-zA-Z_]+/.test(pwd)){
lvl++;
}
return lvl;
}