以下函数尝试将<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);