正则表达式(也叫规则表达式)
- 用来匹配字符串内容的
- 应用:C#,JAVA,Javascript;其他的编程语言:ios,php
- 是一个表达式,然后这个表达式是用来匹配字符串内容的
基本元字符
- . 除了\n以外的任意的一个单个的字符
- [] 表示的是范围;可以把关键性的元字符的本意去掉
- [0-9] 表示的是一个范围, 0到9所有的数字(包括0包括9)中的一个
- [3-7] 包括3,也包括7,之间所有的数字中的一个
- [a-z] 所有的小写字母
- [A-Z] 所有的大写字母
- [a-h] a到h之间所有的小写字母,包括a,也包括h中的一个
- () 提升优先级别;提取分组:一对括号就是一组
- | 或者的意思,优先级别最低
- [.] 就是一个.
- [-] 就是一个-
限定符
- * 表示的是前面的这个表达式出现了0次到多次
- + 表示的是前面的这个表达式出现了 1次到多次
- ? 表示的是前面的这个表达式出现了 0次到1次
- 举例
- {0,} 表示的是前面的表达式出现了 多少次到多少次
- {0,} 表示的是前面的这个表达式出现了0次到多次 *
- {0,1} 表示的是前面的这个表达式出现了0次到 1次 ?
- {1,} 表示的是前面的这个表达式出现了1次到多次
- {3,9} 表示的是前面的这个表达式出现了3次到9次
- {,4} 这种写法是错误的
特殊
- \d 表示的是任意的一个数字
- \D 表示的是非数字中的一个
- \s 表示的是空白符号
- \S 非空白符号
- \w 非特殊符号
- \W 特殊符号
- ^ 以什么开始;取反
- $ 以什么结束
- \b 单词的边界
- 举例
- [^0-9] 取反了 (非数字)
- ^[0-9] 以数字开头
- ^[0-9]$ 严格匹配一个数字
正则表达式的声明和使用
-
在js中的正则的写法: /正则表达式/
-
正则表达式的对象的创建和声明
- 第一种写法: 通过构造函数的方式来创建正则表达式对象
- var reg= new RegExp();
- var reg=new RegExp(/正则表达式/);
- 第二种写法: 以字面量的方式来创建正则
- var reg= /正则表达式/;
-
/正则表达式/g,其中g是全局的意思
- 把所有空格去掉:str.replace(/\s+/g,'') - 去掉左右两边的空格:str.replace(/^\s+|\s+$/g,'')
-
/正则表达式/i,其中i忽略大小写
-
reg.test(测试的字符串)
-
验证密码的弱中强
//获取文本框 注册键盘抬起的事件
document.getElementById("pwd").onkeyup=function () {
if(this.value.length>=6) {
//定义变量存储级别
var lvl = 0;
//正则判断密码中是否有数字
if (/[0-9]/.test(this.value)) {
lvl++;
}
//判断密码中是否有字母
if (/[a-zA-Z]/.test(this.value)) {
lvl++;
}
//判断密码中是否有特殊符号
if (/[^0-9a-zA-Z]/.test(this.value)) {
lvl++;
}
}
document.getElementById("strengthLevel").className = "strengthLv" + lvl;
};
试一试
- 匹配身份证号
- 匹配座机号
- 匹配邮箱
- 验证文本框输入的是不是英文名字
正则测试网站:正则测试 可以去测试下