正则学习

正则表达是基本在所有的计算机语言中都会用到。因为项目中不太常用,而且基本的正则校验都已经写成通用代码,满足基本的业务场景,但是却没有真正用心去学过,遂开始学习了解

常用的正则表达式字符

元字符

名称含义
.匹配除换行符以外的所有字符
\s任意空白符(换行符,制表符,空格)
\S匹配任意非空字符串
\b匹配单词边界,匹配单词的开头和结尾
\B匹配非单词边界
\d匹配数字0-9,等同于0-9
\D匹配除换行符以外的所有字符
\w匹配数字下划线,字母,且包含大小写,等同于A-Za-z0-9_
\W匹配数字下划线,字母,且包含大小写以外的字符
^匹配输入字符串的开始位置,/^A/ 并不会匹配 "an A" 中的 'A',但是会匹配 "An E" 中的 'A'
$匹配输入字符串的结束位置,/A$/ 会匹配 "an A" 中的 'A',但是不会匹配 "An E" 中的 'A'

分组符

名称含义
()用小括号来指定子表达式
[]字符集合,a-z0-9A-C
{}表示范围,{0, 1}

修饰符

名称含义
i忽略大小写
g全局匹配
m多次匹配

量词

名称含义
*匹配任意次数,等同于{0,}
+匹配一次或多次,至少一次,等同于{1,}
?匹配0或1次,等同于{0,1}
{m,n}匹配m到n次

代码实测

1
2
3
4
5
6
7
8
const Exp1 = /\bhi\b/
// \b 匹配单词的开始或结束
LogUtils.logInfo(Exp1.test('hi'))   // true
LogUtils.logInfo(Exp1.test('hi2'))    // false 结尾不是i结尾

const Exp2 = /\bhi\b.\bLucy\b/
LogUtils.logInfo(Exp2.test('hi Lucy'))
LogUtils.logInfo(Exp2.test('hi aaa Lucy'))
上一篇 : 个人通用js方法库d-utils下一篇 : webpack的树摇功能使用