前端开发那些事儿

梳理正则常用知识点

2020-08-21  本文已影响0人  深度剖析JavaScript

正则表达式是用于匹配特殊字符和特殊搭配的字符串的强大工具

正则的两种创建方式

  1. 字面量
    格式:/pattern/attributes
var reg = /abc/g //表示全局匹配abc字符串
  1. 通过new RegExp创建
    格式:new RegExp(pattern,attributes)
var  reg = new RegExp('abc','g')

说明:
pattern表示正则表达式的模式,即要匹配的规则
attributes是一个可选参数,包括 g i m,分别别表示全局匹配,忽略大小写和多行匹配。默认情况是非全局匹配、不忽略大小写和单行匹配
返回值是一个具有指定模式也标志的RegExp对象,typeof reg 为object
当pattern为不合法正则或者attributes包含gim以外的字符时,会报错syntaxError

下面具体来看一些规则
1. [] 用于查找某个范围内的一个字符
例如:
[abc] 表示查找abc中的任意一个字符
[^abc] 表示查找不是a不是b也不是b的任意一个字符;^在[]里表示非
[0-9] 表示查找从0到9的任意数字,-表示到或至的意思
[a-z] 表示查找a到z的字符
[A-Z] 表示查找A到Z的字符
[A-z] 表示查找A到z的字符

2. 元字符 表示拥有特殊含义的一个字符
例如:
. 表示任意一个字符,除换行;可用\.表示"."这一个字符
\w 表示单词字符
\W表示非单词字符
\d 表示数字字符
\D 表示非数字字符
\s 表示查找空白字符
\S 表示查找非空白字符
\n 换行
\r 回车符
\t 制表符
\uxxxx 表示十六进制的数xxxx所对应的Unicode字符

3. () 用于表示某组正则规则,可以作为整体被修饰,也可以供后续调用
小括号括起来的这部份正则表达式可以被当作一个“组”。这个组可以作为整体被后面的修饰,也可在后续处理中单独获得这一部分正则的匹配结果。小括号将其作为一个组,同时记下了匹配的结果。正则表达式 \n表示“第N个组”的结果,因为一个正则表达式中可能有多个小括号扩起的组,所以用 \1 \2 \3 等来分别代表之前的第1组第2组第3组。

4. 量词 表示字符出现的数量
+ 表示一个到多个
* 表示0个到多个
? 表示存0个或1个
{x} 表示出现x个的字符串
{x,y} 表示x个到y个的字符串
{x,} 表示x个到infinity个的字符串
$ 表示以什么结尾的字符串,比如/n$/表示以n结尾的字符串
^ 表示以什么开头的字符串,比如/^n/表示以字母n开头的字符串
?= 表示后面紧接某字符串的字符串,比如/?=n/表示后面紧接字母n的字符串
?! 表示后面不紧接某字符串的字符串,比如/?!n/匹配后面不紧接n的字符串
| 表示或者,例如(x|y) 匹配x或者y

5. 正则对象常用方法

6. 包装类字符串对象身上的常用方法(与正则相关的)

var str = "Visit Microsoft!";
var res = str.replace(/microsoft/i, "W3School"); 
//res 的结果将是:Visit W3School!
上一篇 下一篇

猜你喜欢

热点阅读