js

  淡定的人生不寂寞——繁华过后是寂寞,绚烂过后是平淡,保持淡定的人,一定是最美丽最幸福的人。

   正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。

正则表达式的作用

  1. 给定的字符串是否符合正则表达式的过滤逻辑(匹配)
  2. 可以通过正则表达式,从字符串中获取我们想要的特定部分(提取)
  3. 强大的字符串替换能力(替换)

正则表达式的组成

   普通字符
   特殊字符(元字符):正则表达式中有特殊意义的字符

常用元字符串

元字符 说明
d 匹配数字
D 匹配任意非数字的字符
w 匹配字母或数字或下划线
W 匹配任意不是字母,数字,下划线
s 匹配任意的空白符
S 匹配任意不是空白符的字符
. 匹配除换行符以外的任意单个字符
^ 表示匹配行首的文本(以谁开始)
$ 表示匹配行尾的文本(以谁结束)

限定符

限定符 说明
* 重复零次或更多次
+ 重复一次或更多次
? 重复零次或一次
{n} 重复n次
{n,} 重复n次或更多次
{n,m} 重复n到m次

其它

1
2
3
4
5
6
7
8
9
10
11
12
13
14
[] 字符串用中括号括起来,表示匹配其中的任一字符,相当于或的意思
[^] 匹配除中括号以内的内容
转义符
| 或者,选择两者中的一个。注意|将左右两边分为两部分,而不管左右两边有多长多乱
() 从两个直接量中选择一个,分组
eg:gr(a|e)y匹配gray和grey

()作为分组来使用,获取分组匹配到的结果用Regex.$1 $2 $3....来获取
var reg = /(d{4})-d{1,2}-d{1,2}/;
if (reg.test(dateStr)) {
console.log(RegExp.$1);
}

[u4e00-u9fa5] 匹配汉字 任意一个汉字

正则表达式的方法

Regexp对象 有两个

   test()检测 布尔值
   exec()提取 只返回一个匹配到的结果 若要提取多个值则得循环进行提取

String对象 有四个

   match()提取多个内容 返回一个数组

   replace(reg, 替换字符)替换
   replace的参数可以是函数而不是字符串,每个匹配都会调用该函数,它返回的字符串将作为替换的文本使用。

   split(delimiter, limit) 切割字符串 返回一个字符串数组

1
2
3
4
5
6
7
split()方法可以把调用它的字符串分解为一个字串数组,使用的分隔符是它的参数。

参数:

delimiter:字符串或者正则表达式,从该参数指定的地方分割字符串。

limit:指定返回数组的最大长度,如果没有设置该参数,则整个字符串都会被分割。

   search() 查找并且返回第一个匹配字串的第一个字符的位置。如果没有找到任何匹配的字串,则返回-1。

非贪婪模式 ?表示

   所谓的”贪婪”的意思就是,如果符合要求就一直往后匹配,一直到无法匹配为止,这就是贪婪模式。
   所谓的非贪婪模式就是一旦匹配到合适的就结束,不在继续匹配下去了。

1
2
3
4
5
贪婪模式的标示符:
+,?,*,{n},{n,},{n,m}

非贪婪模式:
+?,??,*??,{n}?,{n,}?,{n,m}?

QQ有事您Q我👇