我有这样的文字
const a: string = 'I like orange, blue, black, pink, rose, yellow, white, black';
还有一个字符串
const b: string =['black', 'yellow'];
我想将字符串中的 a 全黑和黄色替换为紫色,所以它必须看起来像在屏幕上
“我喜欢橙色、蓝色、紫色、粉色、玫瑰色、紫罗兰色、白色、紫罗兰色”。
我知道函数replace(),但不知道如何传递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>
关于javascript - 如何使用 Javascript Replace() 替换文本中的单词(如果它们属于数组),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44525462/