试图用数组的元素替换括号 [ ] 内的所有内容。例:
function replacingText(){
var names = ["Cole", "Kyle", "Chase"];
var sentance = 'This is [Cole].'
var regex = "[(.*?)]/gm";
console.log(sentance.replace(regex, names[1]));
}
所以输出应该是"这是凯尔",而不是"这是[科尔]。
唯一需要修复的是正则表达式字符串需要
var regex = /[(.*?)]/gm;
末尾的/gm 只是表示它不会停在它找到的第一个,"m"代表多行匹配。
javascript 字符串替换可以接受字符串和正则表达式作为第一个参数。请参阅此处提供的示例。
在您的情况下,您将第一个作为正则表达式的字符串传递:"[(.*?)]"
相反,您应该匹配确切的字符串sentence.replace("[Cole]", names[1])
或者,您可能想要的是使用正则表达式来匹配任何名称sentence.replace(/[.+]/g, names[1])
(请注意,第一个参数不包含任何引号(
/g(全局(用于匹配句子中的所有匹配项。否则,只会替换第一个匹配项。
你能试试这个:
function replacingText() {
var names = ["Cole", "Kyle", "Chase"];
var sentance = "This is [Cole] [ahmed]";
var regex = /[([0-9]|[aA-zZ])*]/g;
console.log(sentance.replace(regex, names[1]));
}
我刚刚尝试过,它按预期工作