不必用正则表达式解决所有问题。简单的任务用字符串方法更快、更易读。
确认是否包含固定字符串时,includes 或 indexOf 比正则表达式更快,意图也更明确。确认特定前缀·后缀用 startsWith·endsWith 最合适。这类简单判断如果用正则表达式,反而会变得难以阅读。
以固定分隔符分割或替换的任务,用 split 或 replaceAll(字符串参数)就足够了。只有当分隔符有多个、混入重复或条件、或者模式是可变的时候,正则表达式才真正显出价值。
适合正则表达式的情形是格式校验、令牌提取、复杂替换、一次匹配多个候选的场景。反过来,简单的是否包含、固定替换、固定分割用字符串方法更好。让工具去适配问题。
判断标准很简单。请自问「用正则表达式写这个会变得难读吗?」团队成员无法解读的正则表达式会成为 bug 的温床。很多时候,比起一点点性能,可读性更重要。