js关键字标红,转换大小写
highlightKeyWordsNewnew = (values) => {
let str = values;
const { synonym } = this.state;
let newStr = values;
if (synonym != '' && str) {
for (let i = 0; i < synonym.length; i++) {
let searchStr = synonym[i];
// 大写
let DasearchStr = searchStr.toUpperCase();
let XiaosearchStr = searchStr.toUpperCase();
if (
str.indexOf(searchStr) != -1 ||
str.indexOf(DasearchStr) != -1 ||
str.indexOf(XiaosearchStr) != -1
) {
searchStr = searchStr.toUpperCase();
newStr = this.replaceAll(newStr, searchStr, '∵' + searchStr + '∴');
searchStr = searchStr.toLowerCase();
newStr = this.replaceAll(newStr, searchStr, '∵' + searchStr + '∴');
}
}
newStr = this.replaceAll(newStr, '∵', '<span style="color:#FF0000">');
newStr = this.replaceAll(newStr, '∴', '</span>');
}
return <div dangerouslySetInnerHTML={{ __html: newStr }}></div>;
};
replaceAll = (item, sourceStr, newStr) => {
let reg = new RegExp(sourceStr, 'g'); //g,表示全部替换。
return item.replace(reg, newStr);
};