正则表达式 符号记忆

/g 全局匹配多个,/i 不区分大小写;

/d/ 匹配数字(d from digit),

/s/  (s from space) 空格符号:包括空格,制表符  ,换行符   和其他少数稀有字符,例如 vf 和 

w(“w” from “word”) “单字”字符:拉丁字母或数字或下划线 _。非拉丁字母(如西里尔字母或印地文)不属于 w

例如,dsw表示“数字”,后跟“空格字符”,后跟“单字字符”,例如 1 a

alert( "I love HTML5!".match(/swwwwd/) ); // ' HTML5'

反向类

每个字符类都有一个反向类,用相同的大写字母表示。
D 非数字; S 非空格字符 ;  W非单字字符

点(.) 是匹配任何字符 ,

点表示“任何字符”,而不是“缺少字符”。必须有一个与之匹配的字符

  • d —— 数字。
  • D —— 非数字。
  • s —— 空格符号,制表符,换行符。
  • S —— 除了 s 。
  • w —— 拉丁字母,数字,下划线 '_'
  • W —— 除了 w
  • . —— 任何带有 's' 标志的字符,否则为除换行符  之外的任何字符。

字符串开始 ^ 和末尾 $

"m" — 多行模式  字符串多行(即字符串不在同一行中间有换行符)

词边界:

  既可以用于单词,也可以用于数字。

转义

如果要把特殊字符作为常规字符来使用,只需要在它前面加个反斜杠

alert( "Chapter 5.1".match(/d.d/) ); // 5.1

传递一个字符串(参数)给 new RegExp 时,我们需要双倍反斜杠 \,因为字符串引号会消费其中的一个

let regStr = "\d\.\d";

alert(regStr);// d.d (correct now)

let regexp = new RegExp(regStr)

alert( "Chapter 5.1".match(regexp) ); // 5.1

集合和范围 [...]

[eao] 意味着查找在 3 个字符 'a''e' 或者 `‘o’ 中的任意一个,非多个

方括号也可以包含字符范围

alert( "Exception 0xAF".match(/x[0-9A-F][0-9A-F]/g) ); // xAF

alert( "alice15@gmail.com".match(/[^dsA-Z]/gi) ); // @  .

在集合中不需要转义(不需要反斜杠,转义了也没问题)

  • 在开头或者结尾表示一个破折号(在这些位置该符号表示的就不是一个范围) `pattern:’-’。
  • 在不是开头的位置表示一个插入符号(在开头位置该符号表示的是排除)'^'

量词 `+,*,?` 和 `{n}` 

n代表数量几个;   

+最少一个 相当于{1,} ;

 *  代表着“零个或多个”,相当于 {0,} ;

?代表“零个或一个”,相当于 {0,1}

我们可以添加  来排除更多位数的数字:d{5}

某个范围的位数:{3,5}   3-5位数字

选择(OR)|

我们通常用圆括号把模式中的选择部分括起来,像这样 before(XXX|YYY)after

  • gr(a|e)y 严格等同 gr[ae]y
  • gra|ey 匹配 “gra” or “ey”。
原文地址:https://www.cnblogs.com/xiaoyaoweb/p/13672878.html