javascript - 如何使用 Javascript Replace() 替换文本中的单词(如果它们属于数组)

标签 javascript arrays typescript replace

我有这样的文字

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/

相关文章:

javascript - 根据条件组合/扩展两个对象

javascript - 如何让tooltip直到鼠标放在上面才消失

javascript - Backand - 如何从安全操作内部 console.log() 内容?

arrays - 求序列的周期

json - 无法获取嵌套 JSON 对象属性 Typescript

javascript - Knockoutjs - 在使用 foreach 而不是选项时丢失了选择值的两种绑定(bind)方式

c++ - 如何将一个字符数组映射到另一个字符数组?

javascript - 将函数转换为 JSON,然后再次运行

javascript - 在 inIonic 中使用范围 slider 显示数字时出现问题

javascript - Typescript 动态创建接口(interface)