正则表达式 (规则表达式)
定义:使用单个字符串来描述、匹配一系列符合某个语法规则的字符串搜索模式。
^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$
和正则相似的事物
女人的心
道士的符
医生的字
正则表达式
正则表达式的作用
操作字符串是正则唯一的作用
验证用户名
验证电话号码
验证密码等表单元素
聊天软件的表情
新闻采集 --小偷程序
....
正则表达式的定义
1、var res = /html5/
2、var res = new RegExp(/html5/);
3、var res = RegExp(“html5”);
ECMA5规定正则对象为独立的实例
var a = /a/;
var b = /a/;
console.log(a==b);
return false;
表单的简单验证
1、html中直接验证: input type="text" pattern="\w{2}"
2、使用js进行正则验证
定义字符串 var email = "abc";
定义正则语句 var reg = /b/;
返回匹配结果(数组) console.log(email.match(res)); --input: 对字符串对象的引用
定义正则语句
正常的字母数字都是原子
var str = "abcebd123";
var reg = /b/;
console.log(str.match(reg));
特殊字符
1.\n查找换行符
2.\f查找换页符 --打印机 或 操作系统等终端
3.\r查找回车符
4.\t查找制表符 (tab键)
5.\v垂直制表符 --打印机 或 操作系统等终端
6.匹配unicode字符console.log(text.match(/\u50bb\u903c/));
注意:特殊字符串的匹配:var s = 'abcabcaff';匹配abca
字符类
1、[abcdef] 可选列表,只能是原子列表中的一个字符
2、[7-9] 多选列表(连字符),7-9之间的数字
3、\u2E80--\u9fff 所有的文字包括日语韩语等
4、[^7-9] 取反,不是7-9之间的数字 ([a-zA-Z0-9_])
5、\d 匹配所有数字
6、\D 匹配所有非数字
7、\w 匹配数字字母下划线
8、\W 除了数字字母下划线
9、\s 表示所有空白字符 包括 \r \n \t
10、\S 表示所有可见字符
11、.匹配所有除了\n \r
正则重复 {原子数量修饰符}
注:修饰紧挨着的一个原子
1、+ 表示一个或者多个(连续的) /a+/
2、? 表示0或者一个 /a?/
3、* 表示任意个 /a*/
4、{} {m,n} 表示m到n个 /a{3,5}/
5、{m,} 表示大于m /a{3,}/
6、{m} 表示m个 /a{m}/
7、{0,m} 表示0-m个 /a{0,5}/ --{,m} X
非贪婪模式 ?
console.log("aaaaaaaaaaaaaaaaaa".match(/\w{2,10}/)); 贪婪
console.log("abcdefhigklmnopqr".match(/\w{2,6}?/)); 非贪婪
特殊原子的匹配 --在正则中具有特殊意义的符号需要转义
?
\
//
.
*
等等.......
选择修饰符 |
/a|b/ 匹配a或者b
/abc|def/ 匹配abc或者def 字符串结合优先级大于选择符
/ab(c|d)ef/ 改变优先级 匹配abcef abdef
模式单元修饰符 ()
将多个原子视为一个原子 str.match(/(abc){1,3}/);
1、将匹配的内容暂存在内存 'abc'.match(/(a)(b)(c)/);
2、提高优先级 'abcdef'.match(/ab(c|d)ef/);
3、将括号的内容反向引用 console.log("abcac".match(/(\w)\w(\w)\1\2/));
4、使用(?:)取消暂存内存的特性,没有暂存在内存不能进行引用 console.log("abc".match(/(?:ab)(c)/));
console.log("abcc".match(/(?:\w)\w(\w)\1/));
网友评论