错误使用正则表达式可能导致性能问题、安全漏洞以及维护成本飙升。本篇列举常见反模式,并给出可行的修复方案。
反模式 1:过度使用 .*
问题:.* 会吞噬所有字符,导致匹配不受控,甚至误伤合法输入。
解决:用精确的字符类替代,例如 [^\s]、[A-Za-z0-9_];必要时加入非贪婪量词与锚点。
反模式 2:嵌套量词引发回溯
/(\w+)*$/
2000/1/20大约 2 分钟
错误使用正则表达式可能导致性能问题、安全漏洞以及维护成本飙升。本篇列举常见反模式,并给出可行的修复方案。
.*问题:.* 会吞噬所有字符,导致匹配不受控,甚至误伤合法输入。
解决:用精确的字符类替代,例如 [^\s]、[A-Za-z0-9_];必要时加入非贪婪量词与锚点。
/(\w+)*$/