js常用正则表达式介绍

发布时间:2020-04-27编辑:脚本学堂
小编给同学们介绍一下JS中,经常用到的正则表达式。
正则表达式是一个用来描述字符模式的对象。它被用来在文本中执行模式匹配(pattern-matching)以及”查找-替换”(search-and-replace)的任务。js中正则的风格类似Perl中正则的风格。

基本语法

元字符

在正则表达式的模式中,有一些字符是有特殊含义的,被称为元字符。元字符都是针对单个字符匹配的。

w 匹配大小写英文字符及数字 0 到 9 之间的任意一个及下划线,相当于 [a-zA-Z0-9_]

W 不匹配大小写英文字符及数字 0 到 9 之间的任意一个,相当于 [^a-zA-Z0-9_]

s 匹配任何空白字符,相当于 [ fnrtv]

S 匹配任何非空白字符,相当于 [^s]

d 匹配任何 0 到 9 之间的单个数字,相当于 [0-9]

D 不匹配任何 0 到 9 之间的单个数字,相当于 [^0-9]

[u4e00-u9fa5] 匹配任意单个汉字(这里用的是 Unicode 编码表示汉字的 )

界定符

比较通用的正则表达式界定符是双斜杠 /regex/

原子的概念

正则表达式中的原子分为可见原子和不可见原子。

[ fnrtv] 属于不可见原子,其他表示可见原子

量词

* 匹配 0 到多个元字符,相当于 {0,}

? 匹配 0 到 1 个元字符,相当于 {0,1}

{n} 匹配 n 个元字符

{n,} 匹配至少 n 个元字符

{n,m} 匹配 n 到 m 个元字符

+ 匹配至少 1 个元字符,相当于 {1,}

边界

b 匹配单词边界

^ 字符串必须以指定的字符开始

$ 字符串必须以指定的字符结束

捕获分组

正则表达式中,使用 () 将若干单位(可以是字符,正则表达式)组织在一起,成为一个独立单元。

正则表达式中,分组分为捕获分组和非捕获分组。

模式修正

贪婪/懒惰,忽略大小写,忽略空白字符

使用场景

表单验证, 模板引擎