我正在尝试允许对匹配的部分加粗的搜索。例如,如果我有一个名字“ John”并在同一字符串中搜索“ Jo Joh”,我希望它使john tha thas的匹配次数最大,并将该部分加粗,因此应该像乔 n。
到目前为止,这是我所拥有的,我无法弄清为什么它在我的Vue工具调试器中说“评估时出错”。
computed: {
bold: function () {
var compare = [];
var word = 'john';
var array = ['jo', 'joh'];
for (var i = 0; i < array.length; i++) {
if (word.contains(array[i])) {
compare[i] = array[i];
}
}
var maxWord = compare[0];
for (var i = 0; i < compare.length - 1; i++) {
if (maxWord.length < compare[i].length) {
maxWord = compare[i];
}
}
return word.toString().replace(maxWord, '<strong>' + maxWord + '</strong>');
}
}
答案 0 :(得分:1)
选中此example。您可以根据需要覆盖搜索输入。
有一个 boldString 方法,它将转换为字符串:
function boldString(str, find){
var re = new RegExp(find, 'g');
return str.replace(re, '<b>'+find+'</b>');
}
您可以像这样遍历数组:
function search(input){
var arr = ["john", "doe"];
var res = "";
var i = 0;
while(i < arr.length) {
res += boldString(arr[i], input);
res += " ";
i++;
}
return res;
}
希望对您有帮助!