如何替换文本中的单词,如果它们属于带有Javascript replace()的数组



我有一段文字,比如

const a: string = 'I like orange, blue, black, pink, rose, yellow, white, black';

和一根绳子

const b: string =['black', 'yellow'];

我想在字符串中替换全黑和黄色到紫色,所以它必须看起来像在屏幕上

"我喜欢橙色,蓝色,紫色,粉红色,玫瑰色,紫色,白色,紫色"。

我知道函数替换(),但不知道如何传递 b 作为参数......你能帮帮我吗?

如果可能的话,我想用输入字段代替的不是紫色,而是输入字段,这样我就可以在文本中输入自己的颜色......谢谢!

您可以将正则表达式与给定数组一起使用,在正则表达式中通过管道作为 OR 符号连接。

let a = 'I like orange, blue, black, pink, rose, yellow, white, black';
const b = ['black', 'yellow'];

a = a.replace(new RegExp(b.join('|'), 'g'), 'violet');
console.log(a);

带输入

function change() {
document.getElementById('output').innerHTML = 
a.replace(new RegExp(b.join('|'), 'g'), document.getElementById('input').value);
}
let a = 'I like orange, blue, black, pink, rose, yellow, white, black';
const b = ['black', 'yellow'];
<input id="input" type="text" value="" onchange="change();" />
<div id="output"></div>

replace()

不接受数组。但是有一个解决方法。你可以做的是循环访问你想要替换的每个单词。

let a: string = 'I like orange, blue, black, pink, rose, yellow, white, black'
const b: string = ['black', 'yellow']
b.forEach(word => {
a = a.replace(word, 'violet')
})

此外,const是不可变的,所以如果你想要一个变量,你可以修改,确保使用 let。

相关内容

最新更新