由于各大平台都有正则表达式, 但是使用风格各有村规, 所以特地的要学习一下最普遍, 常用的 javascript 的正则表达式的使用方法
一个正则表达式由包含在斜杠内的模式组成:
var re = /ab+c/;
| ^$ | 开头结尾 |
| \b | 单词边界(字母和空格之间) |
| \B | 非单词边界 |
| x(?=y) | 先行断言, 匹配的是x |
| x(?!y) | 先行否定断言 |
| (?<=y)x | 后行断言 |
| (?<!y)x | 后行否定断言 |
| \d | 数字, [0-9] |
| \D | 反,[^0-9] |
| \w | 字母数字下划线,[A-Za-z0-9_] |
| \W | 反 |
| \s | 单个空白字符->空格,制表符,换页符,换行符等空格[\f\n\r\t\v\u0020\u00a0\u1680\u2000-\u200a\u2028\u2029\u202f\u205f\u3000\ufeff] |
| \S | 反 |
| \t | tab |
| \r | 回车 |
| \n | 换行 |
| \v | 垂直tab(? |
| [\b] | 退格键 |
| \0 | NUL字符 |
| \cX | 控制字符, X为A-Z中的一个字母, U+0001-U+001F |
| \xhh | 代码hh十六进制对应的字符 |
| \uhhhh | 值hhhh对应的UTF-16代码单元 |
| \u{hhhh}, \u{hhhhh} | U+hhhh/U+hhhhh |
| \p{UnicodeProperty} | Unicode字符属性(表情符, 日文, 汉字) |
| x|y | x或y |
| [] | 最基础的, 不用说 |
| (x) | 捕获组 |
| \n | n为正整数, 第n个括号匹配的子串反向引用 |
| (?<Name>x) | 将x捕获到组<name>中 |
| (?:x) | 非捕获组, 匹配但是不作为结果返回 |
| * | 0+ |
| + | 1+ |
| ? | 0/1 |
| {n,} | n+ |
| {n, m} | n-m |
| *?, +?, ??, {}? | 反贪婪 |
主要是不同语言的匹配, 不需要详细展开
| g | 全局 |
| i | 不区分大小写 |
| m | 多行搜索 |
| s | 允许.匹配换行符 |
| u | 使用unicode码的模式进行匹配 |
| y | 使用粘性搜索 |
不写了, 主要也不是在 js 里面用啊, 只要知道 js 的 regex 村规就行了
参考: mdn-正则表达式