【发布时间】:2021-03-10 00:22:36
【问题描述】:
在 Javascript 中加粗部分字符串的最佳方法是什么?
我有一个对象数组。每个对象都有一个名称。还有一个输入参数。
例如,如果您在输入中写入“sa”,它会自动在数组中搜索名称中包含“sa”字符串的对象。
当我打印所有名称时,我想将名称中与输入文本一致的部分加粗。
例如,如果我搜索“Ma”:
玛利亚
Ama里亚
等等……
我需要一个不使用 jQuery 的解决方案。感谢您的帮助。
PD:最后的字符串在
这是代码:
$scope.users = data;
for (var i = data.length - 1; i >= 0; i--) {
data[i].name=data[i].name.replace($scope.modelCiudad,"<b>"+$scope.modelCiudad+"</b>");
};
ModelCiudad 是输入文本内容变量。而data是对象数组。
在此代码中,例如,如果 ModelCiudad 是“ma”,则每个
<b>Ma</b>ria
不是玛里亚
【问题讨论】:
-
请分享您的尝试。
-
比
<b>更合适的标签可能是<mark>,它表示在特定上下文中突出显示其相关性的文本。突出显示搜索匹配是<mark>标签的完美使用。 -
我认为您正在正确处理替换。似乎所有答案都向您展示了如何替换文本,而真正的问题似乎是数据的呈现方式。这完全取决于您如何渲染/设置此文本。似乎如果您将
innerHTML设置为您的字符串,它将正确呈现,但如果您设置innerText或textContent,它将按字面意思呈现<b>标签,而不是将它们呈现为HTML。
标签: javascript angularjs string