正则系列之字符类


字符类可以区分各种字符,例如区分字母和数字。

1、.

有下列含义之一:

  1. 匹配除行终止符之外的任何单个字符:\n(换行符)\r(回车符)\u2028(行分隔符)或者\u2029(段落分隔符)
let reg = /.y/g;
let str = "yes make my day";
str.match(reg); // ['my', 'ay']
  1. 在字符集内,点失去了它的特殊意义,并与文字点匹配。
let reg = /\./g;
let str = ".u";
str.match(reg); // ['.']

注意m多行标志不会改变点的行为。因此,要匹配多行模式,可以使用字符类[^],它将匹配包括换行符在内的任何字符。

let reg = /[^]/g;
let str = ".u\n\r\u2028\u2029";
str.match(reg); // ['.', 'u', '\n', '\r', '
', '
']

ES2018 添加了 s“dotAll”标志,它允许点也匹配行终止符。

let reg = /./g;
let str = "yes make my day\n";
str.match(reg); // ['y', 'e', 's', ' ', 'm', 'a', 'k', 'e', ' ', 'm', 'y', ' ', 'd', 'a', 'y']
reg = /./gs;
str.match(reg); // ['y', 'e', 's', ' ', 'm', 'a', 'k', 'e', ' ', 'm', 'y', ' ', 'd', 'a', 'y', '\n']

2、\d

匹配任何数字(阿拉伯数字)。相当于 [0-9]

let reg = /\d/g;
let str = "B2is the suite number";
str.match(reg); // ['2']

3、\D

匹配任何非数字(阿拉伯数字)的字符。相当于[^0-9]

let reg = /\D/g;
let str = "B2is the suite number";
str.match(reg); //  ['B', 'i', 's', ' ', 't', 'h', 'e', ' ', 's', 'u', 'i', 't', 'e', ' ', 'n', 'u', 'm', 'b', 'e', 'r']

4、\w

匹配基本拉丁字母中的任何字母数字字符,包括下划线。相当于 [A-Za-z0-9_]

let reg = /\w/g;
let str = "B2is_the-suite number";
str.match(reg); //  ['B', '2', 'i', 's', '_', 't', 'h', 'e', 's', 'u', 'i', 't', 'e', 'n', 'u', 'm', 'b', 'e', 'r']

5、\W

匹配任何不是来自基本拉丁字母的单词字符。相当于 [^A-Za-z0-9_]

let reg = /\W/g;
let str = "B2is_the-suite number";
str.match(reg); //  ['-', ' ']

6、\s

匹配单个空白字符,包括空格、制表符、换页符、换行符和其他 Unicode 空格。相当于 [ \f\n\r\t\v\u00a0\u1680\u2000-\u200a\u2028\u2029\u202f\u205f\u3000\ufeff]

let reg = /\s/g;
let str = "B2is_the-suite number\f\n\r\t\v\u00a0\u1680\u2000\u200a\u2028\u2029\u202f\u205f\u3000\ufeff";
str.match(reg);// [' ', '\f', '\n', '\r', '\t', '\v', ' ', ' ', ' ', ' ', '
', '', '', '', ' ', '']

7、\S

匹配除空格以外的单个字符。相当于[^ \f\n\r\t\v\u00a0\u1680\u2000-\u200a\u2028\u2029\u202f\u205f\u3000\ufeff]

reg = /\S/g;
str.match(reg); // ['B', '2', 'i', 's', '_', 't', 'h', 'e', '-', 's', 'u', 'i', 't', 'e', 'n', 'u', 'm', 'b', 'e', 'r']

8、\t

匹配水平制表符。

let reg = /\t/g;
let str = "B2is_the-suite number\f\n\r\t\v\u00a0\u1680\u2000\u200a\u2028\u2029\u202f\u205f\u3000\ufeff";
str.match(reg); // ['\t']

9、\r

匹配回车符。

let reg = /\r/g;
let str = "B2is_the-suite number\f\n\r\t\v\u00a0\u1680\u2000\u200a\u2028\u2029\u202f\u205f\u3000\ufeff";
str.match(reg); // ['\r']

10、\n

匹配换行符。

let reg = /\n/g;
let str = "B2is_the-suite number\f\n\r\t\v\u00a0\u1680\u2000\u200a\u2028\u2029\u202f\u205f\u3000\ufeff";
str.match(reg); // ['\n']

11、\v

匹配垂直制表符。

let reg = /\v/g;
let str = "B2is_the-suite number\f\n\r\t\v\u00a0\u1680\u2000\u200a\u2028\u2029\u202f\u205f\u3000\ufeff";
str.match(reg); // ['\v']

12、\f

匹配换页符。

let reg = /\f/g;
let str = "B2is_the-suite number\f\n\r\t\v\u00a0\u1680\u2000\u200a\u2028\u2029\u202f\u205f\u3000\ufeff";
str.match(reg); // ['\f']

13、[\b]

匹配退格键。

14、\0

匹配一个 NUL 字符。不要在此后面加上另一个数字。

15、\cX

使用插入符号匹配控制字符,其中“X”A–Z 中的一个字母(对应于代码点 U+0001–U+001F)。

let reg = /\cM/g;
let str = "\r\t";
str.match(reg); // ['\r']

16、\xhh

匹配与代码 hh(两个十六进制数字)对应的字符。

17、\uhhhh

匹配与值 hhhh(四个十六进制数字)对应的 UTF-16 代码单元。

18、\u{hhhh}\u{hhhhh}

(仅当设置了 u 标志时。)匹配与 UnicodeU+hhhhU+hhhhh(十六进制数字)对应的字符。

19、\p{UnicodeProperty}\P{UnicodeProperty}

根据字符的 Unicode 字符属性匹配字符(例如,仅匹配表情符号字符、日文片假名字符、中文汉字字符或日文汉字字符等)。

20、\

指示应特殊处理或“转义”后面的字符。它表现为两种方式之一。

  • 对于通常按字面处理的字符,表示下一个字符是特殊的,不能按字面解释。例如,/b/ 匹配字符“b”。通过在“b”前面放置反斜杠,即使用 /\b/,字符变得特殊以表示匹配单词边界。
  • 对于通常被特殊对待的字符,表示下一个字符不是特殊的,应该按字面意思解释。例如,“*”是一个特殊字符,表示应该匹配前面的字符出现 0次或多次;例如,/a*/ 示匹配 0 个或多个“a”。要从字面上匹配 * 需在其前面加上反斜杠;例如,/a\*/ 匹配“a*”

后记

如果你感觉文章不咋地//(ㄒoㄒ)//,就在评论处留言,作者继续改进;o_O???
如果你觉得该文章有一点点用处,可以给作者点个赞;\\*^o^*//
如果你想要和作者一起进步,可以微信扫描二维码,关注前端老L~~~///(^v^)\\\~~~
谢谢各位读者们啦(^_^)∠※!!!

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_62277266/article/details/125539010