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

 

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

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

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

例如,\d\s\w表示“数字”,后跟“空格字符”,后跟“单字字符”,例如 1 a

alert( "I love HTML5!".match(/\s\w\w\w\w\d/) ); // ' HTML5'

 

反向类

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

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

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

 

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

字符串开始 ^ 和末尾 $

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

词边界:\b

iOS 正则表达 空格 正则空格符号_iOS 正则表达 空格

 

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

iOS 正则表达 空格 正则空格符号_字符串_02

 

 

转义

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

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(/[^\d\sA-Z]/gi) ); // @  .

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

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

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

n代表数量几个;   

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

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

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

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

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

选择(OR)|

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

  • gr(a|e)y 严格等同 gr[ae]y
  • gra|ey 匹配 “gra” or “ey”。