【发布时间】:2020-04-26 13:45:17
【问题描述】:
因此,对于每个预测,谷歌放置自动完成 API 也会为每个预测返回匹配的子字符串。
输入:San 68
预测:旧金山 68
匹配的子串:[{ offset: 0, length: 3 }, { offset: 15, length: 2 }]
预期:旧金山旧金山68
我的目标是使用匹配的子字符串突出显示部分预测。现在有一些挑战。我可以使用replace 函数并将每个子字符串替换为<b>str</b>,但它返回一个字符串,这意味着除非我使用dangerouslySetInnerHTML,否则此方法不起作用。
我也不认为有办法替换多个子字符串。我尝试使用 reduce 函数,但在第一个循环之后它不会真正起作用,因为索引会出错。
const highlight = (text, matched_substrings) => {
return matched_substrings.reduce((acc, cur) => {
return acc.replace(
acc.substring(cur.offset, cur.length),
(str) => `<b>${str}</b>`
)
}, text)
}
那么有没有办法做到这一点?我认为 React 让这变得更加复杂。
【问题讨论】:
标签: javascript reactjs google-places-api