已关闭。此问题需要超过focused。当前不接受答案。
**想要改进此问题吗?**更新此问题,使其仅关注editing this post的一个问题。
昨天关门了。
Improve this question
正则表达式工作不正常。我需要标记字符串的一部分,但我不知道它是如何做的
const markPartOfString = (string, substrings) => {
if (!substrings) return string;
const parts = substrings.split(',').map(str => str.trim());
let markedString = string;
parts.forEach(part => {
const regex = new RegExp(`\\b${part}\\b`, 'gi');
markedString = markedString.replace(regex, match => `<mark>${match}</mark>`);
});
return markedString;
}
//Expected result
console.log(markPartOfString("wfo test3", "wfo test, wfo test3, wf te")); // <mark>wfo</mark><mark>test3</mark>
console.log(markPartOfString("wfo test", "wf")); // <mark>wf</mark>0 test
console.log(markPartOfString("wfo test", "wf te")); // <mark>wf</mark>o <mark>te</mark>st
console.log(markPartOfString("wfo test", "wfo")); // <mark>wfo</mark> test
console.log(markPartOfString("wfo test", "o st")); // wf<mark>o</mark> <mark>st</mark>est
1条答案
按热度按时间zzwlnbp81#
我认为下面的例子是可行的,除了第一种情况不会产生相同的结果,因为当输入中有逗号时,不清楚所需的行为是什么。
还有:
1.别忘了escape the dynamic values used in a RegExp
1.别忘了escape the dynamic values used in HTML