Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/374.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 替换以数组作为参数的字符串中的所有匹配项_Javascript - Fatal编程技术网

Javascript 替换以数组作为参数的字符串中的所有匹配项

Javascript 替换以数组作为参数的字符串中的所有匹配项,javascript,Javascript,在replace()方法中,是否有一种方法可以替换字符串中的所有匹配项,并将数组作为参数 例如: 有以下字符串:“ABCDEFG” 并且有这个数组:['A','D','F'] 是否可以将字符串中的相同字母替换为其他字母?比如: “ABCDEFG”。替换(['A','D','F'],'') 所以最终的结果是:“BCEG”类型: "ABCDEFG".replace(new RegExp(['A','D','F'].join("|")), '') 实际上,有一种方法可以从数组中执行此操作 您需要动

replace()
方法中,是否有一种方法可以替换字符串中的所有匹配项,并将数组作为参数

例如:

有以下字符串:
“ABCDEFG”

并且有这个数组:
['A','D','F']

是否可以将字符串中的相同字母替换为其他字母?比如:

“ABCDEFG”。替换(['A','D','F'],'')

所以最终的结果是:
“BCEG”

类型:

 "ABCDEFG".replace(new RegExp(['A','D','F'].join("|")), '')

实际上,有一种方法可以从数组中执行此操作

您需要动态创建正则表达式:

让arr=['A','D','F'];
让表达式=arr.join(“|”);
设rx=newregexp(表达式“g”);

console.log(“ABCDEFG.replace(rx)”)您可以在阵列中循环:

var str=“ABCDEFG”;
['A','D','F'].forEach(c=>str=str.replace(c,'*'))

console.log(str)如果需要数组作为输入:

'ABCDEF'.replace(new RegExp(['A','D','F'].join('|'), 'g'), '')
通过使用“g”标志,它将替换字符串中出现的所有“A”、“D”或“F”

您也可以用一种更简单的方法来实现这一点:

'ABCDEF'.replace(/A|D|F/g, '')

这里有一个通用函数,它使用与其他答案类似的正则表达式,但允许您传入任何您喜欢的替换字符串:

const str='ABCDEFG';
常数arr=['A','D','F'];
功能替换(str、arr、r){
const regex=new RegExp(arr.join(“|”),“g”);
return str.replace(regex,p=>r);
}
控制台日志(替换(str,arr,);

日志(替换(str,arr,'bob')
的“ABCDEFG”。替换(/A | D | F/g),
就可以了,或者它必须与数组一起动态?不在
替换
方法中(假设您不想触摸原型)。您可以编写自己的函数,though@Leyffda是一个动态数组,无论如何这给了我一个想法