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

Javascript 如何在字符串的JS replace()方法中组合3个正则表达式模式?,javascript,regex,string,replace,Javascript,Regex,String,Replace,-这个例子的答案是'var pattern=/\\n |\\r |\\t/g;' -问题的答案是,您可以将每个模式放在括号中,用管道符号分隔,并在正则表达式的末尾指定全局标识符 塔达!: 请尝试此链接以获取有用的正则表达式工具: 我认为像如何组合正则表达式这样的简单问题会得到一个简单的答案——我不相信教程中有一个直截了当的答案。但我建议你读一下手册 我读过一些建议性的答案,大多数似乎都集中在管道或操作符上,但我想结合正则表达式。在regexes可耻的新手。无论如何,我想从制表符、空格和回车中删除

-这个例子的答案是'var pattern=/\\n |\\r |\\t/g;'

-问题的答案是,您可以将每个模式放在括号中,用管道符号分隔,并在正则表达式的末尾指定全局标识符

塔达!:

请尝试此链接以获取有用的正则表达式工具:

我认为像如何组合正则表达式这样的简单问题会得到一个简单的答案——我不相信教程中有一个直截了当的答案。但我建议你读一下手册

我读过一些建议性的答案,大多数似乎都集中在管道或操作符上,但我想结合正则表达式。在regexes可耻的新手。无论如何,我想从制表符、空格和回车中删除特殊字符。以下是我所拥有的:

            var pattern1 = /(\\n)/g;
            var pattern2 = /(\\t)/g;
            var pattern3 = /(\\r)/g;

            $heading = $heading.replace(pattern1, "");
            $heading = $heading.replace(pattern2, "");
            $heading = $heading.replace(pattern3, "");

这是可行的,但是它是重复的,我找不到任何关于如何创建一个regex模式的信息,该模式将查找所有并删除它们。

您可以使用逻辑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'
该模式将匹配测试字符串中的任何回车、制表符或换行符


还有,看看。这是一个计算正则表达式的好工具

\\n计为两个字符。好的,一个人也可以对带有类的转义特殊字符执行此操作,另外他要求不使用或的解决方案。请在此处更正答案。@sjingo如果这是最有用的答案,请单击投票箭头下方的空心复选标记。请参阅:@sjingo请澄清您是要替换文字\n等还是实际换行符等。请澄清您的问题。我想删除所有与当前正则表达式不同的特殊字符。请澄清问题所在。嗨,谢谢你的评论。我喜欢自己学习,但因为这篇文章,我已经到了最后期限。我不知道为什么会被标记下来,但请放心,我已经在谷歌上搜索了几个小时,并首先阅读了大量的答案。对于你非常模糊的问题,你已经得到了两个正确的答案。你完全忽略了我们所说的关于编辑和澄清你想要的内容的任何内容,你抱怨这是在浪费你的时间?我要结束这个问题了,我很抱歉@WiktorStribiżew早些时候对他的决定提出异议。嘿,拉尔斯隆。谢谢,你的回答很有帮助。