JS高亮全部关键字

{{ time }}

示例代码如下

    /**
     * 字符串高亮关键字
     * @param string str 整段话
     * @param array keyword 关键字数组
     * @return string 高亮后的字符串
     */
    function highlight(str, keyword) {
        //根据关键字生成正则表达式
        let patt = eval(`/(${keyword.join('|')})/gi`)

        //实操替换并返回
        return str.replace(patt, function($, $1, $2) {
            return '<span style="color:red">' + $ + '</span>';
        })
    }

    let str = ' 今天天气不错, 哈哈. 今天是星期三.'
    let keyword = ['天气', '星期三']
    console.log(highlight(str, keyword))
    //输出: '今天<span style="color:red">天气</span>不错, 哈哈. 今天是<span style="color:red">星期三</span>'