什么是正则表达式。
正则表达式是一种匹配规律规则的表达式。在JS中,正则通常用来检索、替换某些文本。
正则表达式的作用。
1.匹配:给定的字符串是否符合表达式的过滤逻辑。
2.提取:通过正则表达式,从字符串中获得我们想要的部分。
3.替换:通过正则表达式替换我们所需要的部分。
正则表达式的组成。
- 普通字符。
- 元字符:正则表达式中具有特殊意义的字符。
常用的元字符。
元字符 | 含义 |
---|---|
\d | [0-9]。表示是一位数字。 |
\D | [^0-9]。表示除数字外的任意字符。 |
\w | [0-9a-zA-Z_]。表示数字、大小写字母和下划线。 |
\W | [^0-9a-zA-Z_]。非单词字符 |
\s | [ \t\v\n\r\f]。表示空白符,包括空格、水平制表符、垂直制表符、换行符、回车符、换页符。 |
\S | [^ \t\v\n\r\f]。 非空白符。 |
. | [^\n\r\u2028\u2029]。通配符,表示几乎任意字符。换行符、回车符、行分隔符和段分隔符除外。记 |
^ | 表示匹配行首的文本(以谁开始) |
$ | 表示匹配行尾的文本(以谁结束) |
限定符。
限定符 | 含义 |
---|---|
* | 重复零次或更多次 |
+ | 重复一次或更多次 |
? | 重复零次或一次 |
{n} | 重复n次 |
{n,} | 重复n次或更多次 |
{n,m} | 重复n到m次 |
其他。
1.[] 字符串用中括号括起来,表示匹配其中的任一字符,相当于或的意思。
2.[^] 匹配中括号以外的内容,相当于非的意思。
3.\ 转义符。
4.| 或者,选择两者中的一个。注意|将左右两边分为两部分,而不管左右两边有多长多乱。
5.() 从两个直接量中选择一个,分组。
6.[\u4e00-\u9fa5] 匹配汉字。
参数。
参数 | 含义 |
---|---|
i | 忽略大小写 |
g | 全局匹配 |
ig | 全局匹配+忽略大小写 |
正则表达式例子。
创建表达式对象
//方式一
var reg = new Regex('\d', 'i');
//方式二
var reg = /\d/i;
表达式匹配
//匹配日期:2021-3-8;
var reg = /^\d{4}-\d{1,2}-\d{1,2}$/console.log(reg.test(dateStr)); // true
表达式提取
// 提取年龄var str = "张三18,李四36,王五60";
var array = str.match(/\d+/g);
console.log(array);//[18,36,60]
表达式替换
// 替换所有空白字符var str = " red blue green ";
str = str.replace(/\s/g, "***");
console.log(str);//***red******blue***green***