正则表达式(RegularExpression):用于匹配规律规则的表达式,正则表达式最初是科学家对人类神经系统的工作原理的早期研究,现在在编程语言中有广泛的应用。
在使用正则表达式的时候,首先要知道正则表达式,并不知道javaScript中的产物,而是独立的学科。当然不止JavaScript中有他的身影,Java,C#,PHP,C++,VB,Python等等太多了就不一一列举了。
正则表达式的作用:
1.给定的字符串是否符合正则表达式的过滤逻辑(匹配);
2.可以通过正则表达式,从字符串中获取我们想要的特定部分(提取)
3.强大的字符串替换能力(替换)
正则表达式的组成:
1.普通字符
2.特殊字符(元字符):正则表达式中有特殊意义的字符
常用元字符:
\d 匹配数字 \D 匹配任意非数字字符
\w 匹配数字,字母,下划线 \W 匹配任意不是数字,字母,下划线
\s 匹配任意的空白符(空格,换行) \S 匹配任意不是空白字符的字符
. 匹配出换行以外任意单个字符
^ 以谁开头 $ 以谁结尾
限定符:
* 重复零次或者更多次
+ 重复一次或更多次
? 重复零次或者一次
{n} 重复n次 {n,} 重复n次或者更多 {n,m} 重复n到m次
[] 字符串用中括号括起来,表示匹配其中的任一字符,相当于或的意思
[^] 匹配除中括号以内的内容
\ 转义符
| 或者,选择两者中的一个。注意|将左右两边分为两部分,而不管左右两边有多长多乱 例: gr(a|e)y匹配gray和grey
() 从两个直接量中选择一个,分组
[\u4e00-\u9fa5] 匹配汉字
[^] 匹配除中括号以内的内容
\ 转义符
| 或者,选择两者中的一个。注意|将左右两边分为两部分,而不管左右两边有多长多乱
() 从两个直接量中选择一个,分组
eg:gr(a|e)y匹配gray和grey
[\u4e00-\u9fa5] 匹配汉字
[^] 匹配除中括号以内的内容
\ 转义符
| 或者,选择两者中的一个。注意|将左右两边分为两部分,而不管左右两边有多长多乱
() 从两个直接量中选择一个,分组
eg:gr(a|e)y匹配gray和grey
[\u4e00-\u9fa5] 匹配汉字
JavaScript中使用正则表达式
有两个参数 i:忽略大小写 g: 全局范围查找
正则对象的方法:
test(字符串); 是否可以匹配
exec(字符串); 获取匹配的内容
方法 一:
let reg = new RegExp('正则','参数') let str = 'asdasdafrqwc' ; console.log(reg.test(str))
方法 二:
let reg = /ab[a-z]/i; // 参数直接跟在 / 后面 let str = 'aBd'; console.log(reg.test(str))跟正则表达式相关的方法
1 RegExp对象
test() 匹配
exec() 提取 提取一个内容
let str = '张三:2500,李四:3000,王五:50000'; let reg = /\d+/g; // exec() 只返回一个匹配到的结果 如果没有匹配的内容返回null let content = reg.exec(str); console.log(content);
可以写一个循环提取所有匹配的内容
do { var content = reg.exec(str); if (content) { console.log(content[0]); } } while(content);2 String对象
match() 提取 可以提取多个内容
replace() 替换
split() 切割
search()