Skip to content

正则 RegExp

/pattern/modifiers

正则表达式是构成搜索模式的字符序列。该搜索模式可用于文本搜索和文本替换操作。

正则表达式常用于两个字符串方法:search()replace() 还有 test 方法

  • search() 方法用于检索字符串中指定的子字符串,或检索与正则表达式相匹配的子字符串,并返回子串的起始位置;
  • replace() 方法用于在字符串中用一些字符串替换另一些字符串,或替换一个与正则表达式匹配的子串
修饰符 modifiers描述
i执行对大小写不敏感的匹配
g执行全局匹配(查找所有匹配而非在找到第一个匹配后停止)
m执行多行匹配
表达式描述
[abc]查找方括号之间的任何字符
[0-9]查找任何从 0 至 9 的数字
`(xy)`
.任意一个字符
元字符描述
\d查找整数字
\s查找空白字符
\b匹配单词边界
\uxxxx查找以十六进制数 xxxx 规定的 Unicode 字符
量词描述
n+匹配任何包含至少一个 n 的字符串
n*匹配任何包含零个或多个 n 的字符串
n?匹配任何包含零个或一个 n 的字符串
其它描述
^n表示必须以 n 开头
n$表示必须以 n 结尾

美元案例

检查字符串是否符合美元书写格式 $1,023,032.03 如果是小数,小数部分长度为 2

javascript
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 中双花括号语法

javascript
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