【发布时间】:2020-04-07 08:45:39
【问题描述】:
我有一个函数,它接受一个 string(特别是来自输入的地址或邮政编码),然后在匹配的结果周围添加强标签。它工作正常,但我希望它匹配没有空格的字符。例如,如果输入字符串是cf142,我希望它匹配CF14 2。
下面是函数:
emboldenMatch(string, query) {
query = query.toLowerCase().trim();
if (string.toLowerCase().includes(query)) {
const queryLength = query.length;
const matchIndex = string.toLowerCase().indexOf(query);
const matchEnd = matchIndex + queryLength;
const before = string.substr(0, matchIndex);
const match = string.substr(matchIndex, queryLength);
const after = string.substr(matchEnd, string.length - matchEnd);
return `${before}<strong>${match}</strong>${after}`;
} else {
return string;
}
}
【问题讨论】:
-
您可以使用
query = query.toLowerCase().trim().replace(/\s+/g, '');删除空格。那是你要找的吗? (解释:.replace() 是一个函数,它用第二个参数替换使用第一个参数找到的任何字符。第一个参数是匹配所有空白字符的正则表达式。第二个参数是一个空字符串) -
我认为这可能会弄乱索引位置。
标签: javascript string whitespace