JavaScript正则关键在于转义规则、边界控制和标志选择:中文匹配需覆盖全角符号;replace中$&指整个匹配,$1等指捕获组;^$需加m标志才匹配每行;RegExp构造函数中反斜杠需双写;安全校验应优先考虑业务边界而非复杂正则。
里写
正则表达式
,关键不是背语法,而是知道**什么时候该转义、什么时候不该、边界怎么控、标志怎么选**。直接上干货。
匹配中文字符却漏掉全角标点?用
不够
这个常见写法只覆盖基本汉字区,但实际文本中常混有全角逗号、句号、空格(
)、平假名/片假名(
、
)等。
更稳妥的中文(含常用全角符号)匹配可写成:
但如果只是校验「是否含中文」,建议加
和
或用
,避免误判空字符串或纯符号串。
中的
、
到底指什么?
这些是内置替换占位符,不是变量,不能用
模板语法(除非用函数作为第二个参数)。
常见几个含义:
:匹配到的整个字符串
、
:对应第一个、第二个捕获组(
内的内容)
:匹配之前的部分;
:匹配之后的部分
例如:
结果是
;而用
就是
中的
变成
(即原样包起来)。
为什么
在多行字符串里不生效?
因为
和
默认只匹配整个字符串的开头和结尾,不是每行。
要让它对换行符也生效,必须加
(multiline)标志:
此时会返回
。
注意:
不影响
是否匹配换行符(那是
标志的事),也别和
混用后忘记重置
——尤其在循环中反复调用
时容易出错。
Trae win
Trae Windows 官方版本现已全面支持 Win10 和 Win11 系统(64位)。国内开发者可直接访问 Trae 中文官网(trae.cn 或 trae.com.cn),一键下载官方正版 .exe 安装包,享受国内直连的高速稳定体验。安装过程极其简便,双击即可运行,并支持一键无缝导入 VS Code 或 Cursor 的原有主题、快捷键及插件配置。登录支持手机号、微信或稀土掘金账号。内置免费的豆包与 DeepSeek 等顶级大模型,让你开箱即用,轻松开启高效的 AI 智能编程之旅。
下载
构造函数创建正则时,字符串转义要翻倍
用
时,反斜杠在字符串字面量里本身就是转义字符,所以想表示一个字面意义的
,得写成
;想表示
,得写成
。
比如:
等价于字面量
。
容易踩坑的是路径或 Windows 文件名中的双反斜杠:
才能生成
的匹配逻辑。
立即学习
“
Java免费学习笔记(深入)
”;
正则真正难的不是写出一个能跑的表达式,而是写出**不意外匹配、不回溯爆炸、不被用户输入绕过**的那一个。尤其是涉及用户输入的校验(比如
邮箱
、手机号),别迷信网上抄来的长正则——先想清楚业务边界,再决定要不要用正则,还是交给专门库或分步验证。
JavaScript/[u4e00-u9fa5]/u3000-u303fu3040-u309fu30a0-u30ff/[u4e00-u9fa5u3000-u303fu3040-u309fu30a0-u30ffuff00-uffef]/^$.test()replace()$1$&${group}$&$1$2()$`$''abc123def'.replace(/(d+)/, '[$1]')'abc[123]def''$&''abc[123]def'[123][123]/^abc$/^$m/^abc$/m.test('xxx
abc
yyy')truem.sglastIndexexec()new RegExp('pattern', 'flags')d'\d'u4e00'\u4e00'new RegExp('\d{3}-\d{4}', 'g')/d{3}-d{4}/g'C:\\Users\\name'C:Users
ame