正则 RegExp
/pattern/modifiers
正则表达式是构成搜索模式的字符序列。该搜索模式可用于文本搜索和文本替换操作。
正则表达式常用于两个字符串方法:search()
和 replace()
还有 test
方法
search()
方法用于检索字符串中指定的子字符串,或检索与正则表达式相匹配的子字符串,并返回子串的起始位置;replace()
方法用于在字符串中用一些字符串替换另一些字符串,或替换一个与正则表达式匹配的子串
修饰符 modifiers | 描述 |
---|---|
i | 执行对大小写不敏感的匹配 |
g | 执行全局匹配(查找所有匹配而非在找到第一个匹配后停止) |
m | 执行多行匹配 |
表达式 | 描述 |
---|---|
[abc] | 查找方括号之间的任何字符 |
[0-9] | 查找任何从 0 至 9 的数字 |
`(x | y)` |
. | 任意一个字符 |
元字符 | 描述 |
---|---|
\d | 查找整数字 |
\s | 查找空白字符 |
\b | 匹配单词边界 |
\uxxxx | 查找以十六进制数 xxxx 规定的 Unicode 字符 |
量词 | 描述 |
---|---|
n+ | 匹配任何包含至少一个 n 的字符串 |
n* | 匹配任何包含零个或多个 n 的字符串 |
n? | 匹配任何包含零个或一个 n 的字符串 |
其它 | 描述 |
---|---|
^n | 表示必须以 n 开头 |
n$ | 表示必须以 n 结尾 |
美元案例
检查字符串是否符合美元书写格式 $1,023,032.03
如果是小数,小数部分长度为 2
js
const pattern = /^\$[1-9]\d{0,2}(,\d{3})*(\.\d{2})?$/;
pattern.test(str); // 返回 true or false
// ^n // 匹配开头为 n 的字符串
// \$ // 转义字符,表示美元符号 $
// [1-9] // 表示一个 1-9 之间的整数
// \d // 表示一个 0-9 之间的整数
// n{0,2} // 表示 n 最少出现 0 次,最多 2 次
// n* // 表示 n 出现 0 次或多次 (,\d{3})* 表示三位整数可以出现多次
// \. // 转义字符,表示小数点.
// n? // 表示 n 出现 0 次或一次 (\.\d{2})?表示必须加两位整数的小数或不加小数
// n$ // 表示必须以 n 结尾
双花括号案例
检查字符串是否符合 Vue 中双花括号语法
js
const pattern = /\{\{(.+?)\}\}/;
pattern.test(str);
隐藏手机号
js
const tel = '18212345678';
const pattern = /^(\d{3})\d{4}(\d{4})$/;
const str = tel.replace(pattern, '$1****$2');
// 输出:182****5678