【发布时间】:2019-06-24 20:01:41
【问题描述】:
我有一个任务。我需要突出显示收入 HTML 中的特定单词。要找到确切的单词,我需要使用它的坐标。坐标是根据单词在字符串中的首尾字母位置计算的。
例子
我有这样的常数
const exmpleString: string = `<h1>Name</h1> <p>Some some, text some.</p>`;
我需要突出显示单词text。
它的坐标是 [28,31] - 因为第一个 t 在字符串中的位置 28 上,最后一个 t 在位置 31 上。
我发现了如何使用正则表达式。
const testString: string = 'some some some text some some text';
const keyWord: string= 'text';
const regexRule: any = new RegExp(keyWord, 'g');
const result: string = testString.replace(regexRule, `<span class="some">${keyWord}</span>`);
console.log(result);
效果很好,但我需要其他解决方案。
【问题讨论】:
-
为什么不想使用正则表达式的解决方案?
-
如果字符串之前已经有HTML格式,你应该考虑到关键字可能出现在你不能或不想突出显示的字符串的位置。例如,如果关键字是“div”怎么办?或者当关键字出现在标签的标题属性或引用图像的文件名等时会发生什么。
-
是的,你是对的。正则表达式的方式很棒,但在我的情况下,重点是避免它(
标签: javascript html css angularjs typescript