如何在字符串上组合JS replace()方法中的3个正则表达式模式

How do i combine 3 regex patterns in JS replace() method on a string?

本文关键字:方法 3个 模式 正则表达式 replace 字符串 JS 组合      更新时间:2023-09-26

我读过一些建议的答案,大多数似乎都集中在管道OR运算符上,但我想组合正则表达式。真是正则表达式新手。无论如何,我想删除制表符、空格和回车符中的特殊字符。这是我的:

            var pattern1 = /(''n)/g;
            var pattern2 = /(''t)/g;
            var pattern3 = /(''r)/g;
            $heading = $heading.replace(pattern1, "");
            $heading = $heading.replace(pattern2, "");
            $heading = $heading.replace(pattern3, "");

这是有效的,但它正在重复,我找不到任何关于如何创建一个正则表达式模式来查找所有正则表达式并将其删除的信息。

您可以使用逻辑OR组合它们。

var pattern = /(''t|''n|''r)/g;
$heading = $heading.replace(pattern1, "");

使用Wiktor Stribiżew方法,但对于转义的特殊字符,可以使用/''[trn]/g来匹配后面跟着三个字符中任何一个的反斜杠。

使用条|用逻辑OR分隔模式。例如,我将使用模式

var pattern = /'r|'t|'n/g;

您也可以使用pattern.source来获得实际的正则表达式。这样,您可以在稍后阶段将它们组合在一起。像这样:

var pattern1 = /'r/;
var pattern2 = /'t/;
var combined = new RegExp(pattern1.source + '|' + pattern2.source);
combined.source
=> '''r|''t'

该模式将匹配测试字符串中的任何回车、制表符或换行符。有关工作示例,请参见此处。

此外,请查看https://regex101.com/#javascript.这是一个计算正则表达式的好工具。