如何使用替换函数将标记标签连接到字符串中的单个单词?



以下函数尝试将<mark>标记连接到字符串的元素(如果在knownWords数组中找到)。因此,在代码执行后,输出应该是,

Marked string: The <mark>quick</mark> <mark>brown</mark> fox jumped over the <mark>lazy</mark> dog. 

但是,字符串在执行后保持不变。

let knownWords = ["quick", "brown", "lazy"];
let string = 'The quick brown fox jumped over the lazy dog.';
console.log('Original string:', string);
knownWords.forEach(match);
function match(value) {
string.replace(/value/g, '<mark>' + value + '</mark>');
}
console.log('Marked string: ',string);

string重新分配给string.replace()的结果,并使用RegExp构造函数,并将value作为参数传递,而不是RegExp文字/value/

let knownWords = ["quick", "brown", "lazy"];
let string = 'The quick brown fox jumped over the lazy dog.';
console.log('Original string:', string);
knownWords.forEach(match);
function match(value) {
string = string.replace(new RegExp(`${value}`), '<mark>' + value + '</mark>');
}
console.log('Marked string: ', string);

或者

let knownWords = ["quick", "brown", "lazy"];
let string = 'The quick brown fox jumped over the lazy dog.';
console.log('Original string:', string);
string = string.replace(new RegExp(knownWords.join("|"), "g"), function(match) {
return `<mark>${match}</mark>`
})
console.log('Marked string: ', string);

let knownWords = ["quick", "brown", "fox"];
let string = 'The quick brown fox jumped over the lazy dog.';
console.log('Original string:', string);
knownWords.forEach(match);
function match(value) {
string.replace(/value/g, '<mellan>' + value + '</mellan>');
}
console.log('Marked string: ',string);

let string = 'The quick brown fox jumped over the lazy dog.';
let knownWords = ["quick", "brown", "fox"];
console.log('Original string:', string);
knownWords.forEach(match);
function match(value) {
string.replace(/value/g, '<mark>' + value + '</mark>');
}
console.log('Marked string: ',string);

最新更新