JavaScript正则匹配主要用字符串方法(match/test/replace)和RegExp对象,需注意模式编写、方法选择及标志位(g/i/m);match()提取所有匹配项并返回数组或null,test()返回布尔值用于校验,replace()支持字符串或函数替换,动态模式宜用RegExp构造函数并防注入。

JavaScript 中正则表达式匹配主要通过字符串方法(如 match()、test()、replace())和 RegExp 对象实现,关键在于写对模式、选对方法、注意标志位。
使用 match() 获取所有匹配结果
适用于提取文本中所有符合规则的子串。返回数组(含匹配项),无匹配时返回 null。
- 全局匹配需加
g标志,否则只返回第一个匹配及其捕获组信息 - 搭配
i(忽略大小写)、m(多行模式)等可扩展适用场景
示例:
const str = "Phone: 138-1234-5678, Fax: 010-8765-4321";
const phones = str.match(/d{3}-d{4}-d{4}/g);
// → ["138-1234-5678", "010-8765-4321"]
用 test() 快速判断是否匹配
最轻量的方法,返回布尔值,适合表单校验、条件分支等场景。
- 直接调用 RegExp 实例的
test()方法 - 注意:若正则含
g标志,多次调用会因内部 lastIndex 变化导致结果不稳定,建议每次新建实例或手动重置lastIndex = 0
示例:
const emailRegex = /^[^s@]+@[^s@]+.[^s@]+$/;
console.log(emailRegex.test("user@example.com")); // true
console.log(emailRegex.test("invalid@")); // false
借助 replace() 替换匹配内容
不仅能替换固定字符串,还能用捕获组动态生成新内容。
标签: javascript java 正则表达式 ai
还木有评论哦,快来抢沙发吧~