如何在JavaScript中使用正则表达式将一组字符替换为空字符串?

如何在JavaScript中使用正则表达式将一组字符替换为空字符串?,javascript,Javascript,有人能帮我写一个正则表达式,用空字符串替换这些字符吗。字符列表如下所示 public static char[] delimiters = { ' ', '\r', '\n', '?', '!', ';', '.', ',', '`', ':', '(', ')', '{', '}', '[', ']', '|', '\'', '\\', '~', '=', '@', '>', '<', '&', '%', '-', '/', '#' }; public static ch

有人能帮我写一个正则表达式,用空字符串替换这些字符吗。字符列表如下所示

public static char[] delimiters = { ' ', '\r', '\n', '?', '!', ';', '.', ',', '`', ':', '(', ')', '{', '}', '[', ']', '|', '\'', '\\', '~', '=', '@', '>', '<', '&', '%', '-', '/', '#' };
public static char[]分隔符={'、'\r'、'\n'、'?'、'!'、';'、'.'、':'、'('、')'、'{'、'}'、'['、']'、'\'、'\'、''.'''、'''''.'、'.'='、'@'、'>'、'
这将删除任何非单词字符,即字母(大写或小写)、数字或下划线

这将删除任何非单词字符,即字母(大写或小写)、数字或下划线。

尝试以下操作:

var delimiters = [' ', '\r', '\n', '?', '!', ';', '.', ',', '`', ':', '(', ')', '{', '}', '[', ']', '|', '\'', '\\', '~', '=', '@', '>', '<', '&', '%', '-', '/', '#'],
    re = new RegExp("[" + delimiters.join("").replace(/[-\\\]]/g, "\\$&") + "]", "g");
str = str.replace(re, "");
var分隔符=[''''.\r'、'\n'、'?'、'!'、';'、''、'''、':'、'('、')'、'{'、'}'、'['、']'、'\'.'、''.'、''.'、'.'、'-'='、'@'、'>'、'尝试以下方法:

var delimiters = [' ', '\r', '\n', '?', '!', ';', '.', ',', '`', ':', '(', ')', '{', '}', '[', ']', '|', '\'', '\\', '~', '=', '@', '>', '<', '&', '%', '-', '/', '#'],
    re = new RegExp("[" + delimiters.join("").replace(/[-\\\]]/g, "\\$&") + "]", "g");
str = str.replace(re, "");

var分隔符=[''''\r','\n','?','!',';',',''',':','(','),'{','}','[',']','.'124;','\''''.''''.','.'''=','@','>'这可能太激进了

/[^A-z0-9]/g

这可能太激进了

/[^A-z0-9]/g

在您的情况下,我将编写一个函数,用于转义regexp中可能具有特殊含义的任何字符,应用regexp并返回结果:

String.prototype.exclude = function(blacklist) {
    for(var i=0; i<blacklist.length; i++) {
        if(blacklist[i].match(/\W/)) {
            blacklist[i] = '\\'+blacklist[i];
        }
    }
    return this.replace(new RegExp('['+blacklist.join('')+']', 'g'), '');
};

var myString = "j a\nv\ra?s!c;r.i,p`t:I(s)A{w}e[s]o|m'e\\~=@><&%-/#"; 

myString.exclude([' ', '\r', '\n', '?', '!', ';', '.', ',', '`', ':', '(', ')', '{', '}', '[', ']', '|', '\'', '\\', '~', '=', '@', '>', '<', '&', '%', '-', '/', '#']);

// returns "JavascriptIsAwesome" which is of course the correct answer
String.prototype.exclude=函数(黑名单){

对于(var i=0;i',',在您的例子中,我将编写一个函数,用于转义regexp中可能具有特殊含义的任何字符,应用regexp并返回结果:

String.prototype.exclude = function(blacklist) {
    for(var i=0; i<blacklist.length; i++) {
        if(blacklist[i].match(/\W/)) {
            blacklist[i] = '\\'+blacklist[i];
        }
    }
    return this.replace(new RegExp('['+blacklist.join('')+']', 'g'), '');
};

var myString = "j a\nv\ra?s!c;r.i,p`t:I(s)A{w}e[s]o|m'e\\~=@><&%-/#"; 

myString.exclude([' ', '\r', '\n', '?', '!', ';', '.', ',', '`', ':', '(', ')', '{', '}', '[', ']', '|', '\'', '\\', '~', '=', '@', '>', '<', '&', '%', '-', '/', '#']);

// returns "JavascriptIsAwesome" which is of course the correct answer
String.prototype.exclude=函数(黑名单){

对于(var i=0;i','这是您想要的正则表达式:

var re = /[ \r\n?!;.,`:(){}\[\]\|\'\\~=@><&%-\/#]/g;
var re=/[\r\n?!;,`:({}\[\]\\\\\\\\\\\\\\\\\\\\=@>>“javascriptIsAwesome”

仅供参考,正则表达式中这类东西的通用符号是“/[…]/”-意思是“匹配括号内的任何字符”

这是您想要的正则表达式:

var re = /[ \r\n?!;.,`:(){}\[\]\|\'\\~=@><&%-\/#]/g;
var re=/[\r\n?!;,`:({}\[\]\\\\\\\\\\\\\\\\\\\\=@>>“javascriptIsAwesome”

仅供参考,正则表达式中此类内容的一般表示法是“/[…]/”-表示“匹配括号内的任何字符”

此操作不需要正则表达式。您能稍微说明一下我的方案吗?是否要从给定字符串中删除所有出现的这些字符?此操作不需要正则表达式。您能稍微说明一下我的方案吗?是否要从给定字符串中删除所有出现的这些字符字符串?这不起作用。我试过了,它不能给出替换的字符串。无论如何,谢谢你的努力。我只想替换列表中提到的那些字符(严格地说)。这不起作用。我试过了,它不能给出替换的字符串。无论如何,谢谢你的努力。我只想替换那些字符(严格地说)在列表中提到。我只想替换列表中提到的那些字符(严格地说)。好的,在这种情况下,不要使用上面提到的字符。我只想替换列表中提到的那些字符(严格地说)。好的,在这种情况下,不要使用上面提到的字符。