Greasy Fork is available in English.

必应 - 高亮显示搜索结果中的关键词(类似百度)

try to take over the world!

// ==UserScript==
// @name         必应 - 高亮显示搜索结果中的关键词(类似百度)
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  try to take over the world!
// @author       You
// @match        *://*.bing.com/search?q=*
// @grant        none
// ==/UserScript==

(function() {
    'use strict';

    /*
    思路:
    总:bing本身已经在网站描述那里把关键词用<strong>标签包起来了,所以只需要给<strong>标签添加一个一颜色属性就行。
    重点是搜索结果的标题,需要自己给关键词添加<strong>标签。

    匹配方式:汉字采用逐字+ 匹配;字母按连在一起的字母为一个单位来匹配。

    */

    //获取搜索关键词
    let Neo_key_word = document.getElementById("sb_form_q").value

    //是否有字母
    var have_zimu = true

    let zimu_list

    //如果有字母就获取关键词中【连续】的字母,否则跳过
    if(Neo_key_word.match(/\w+/g) == null){
        have_zimu = false
    }else{
        zimu_list = Neo_key_word.match(/\w+/g)

        //字母正则字符串
        let reg_zimu_str = ""

        //去掉关键词中的字母/单词,顺便构建一下匹配字母/单词的正则字符串
        for(let i = 0; i < zimu_list.length; i++){
            Neo_key_word = Neo_key_word.replace(zimu_list[i],"")

            //把字母/单词数组做成正则字符串
            reg_zimu_str = reg_zimu_str +"|"+ zimu_list[i]
        }
        reg_zimu_str = "("+reg_zimu_str.replace("|","")+")"

        //构建字母正则
        var reg_zimu = new RegExp("("+reg_zimu_str +")","gi");
        have_zimu = true
    }


    //把关键词里面含有的正则符号转义
    Neo_key_word =Neo_key_word.replace(/([\!\$\%\^\*\(\)\{\}\[\]\=\+\-\?\<\>\.\,])/g,"\\$1")


    //构建匹配关键词的正则表达式
    var reg = new RegExp("(["+Neo_key_word+"]+)","gi");

    //获取所有结果的标题
    let all_title = document.querySelectorAll(".b_algo h2 a")
    //let all_title = document.querySelectorAll("a")

    //给匹配reg正则的字词加上<strong>标签
    for(let i=0; i <all_title.length ; i++){
        //给汉字添加<strong>标签
        all_title[i].innerHTML = all_title[i].innerHTML.replace(reg,"<strong>$1</strong>")

        if(have_zimu == true){
            //给字母添加<strong>标签
            all_title[i].innerHTML = all_title[i].innerHTML.replace(reg_zimu,"<strong>$1</strong>")
        }
        //顺便修改一下【字体大小】(感觉之前的太大了,有点占地方)
        all_title[i].style.fontSize = "17px"
    }

    //给每个<strong>标签添加颜色
    let all_strong_tag = document.querySelectorAll("strong")
    for(let i=0; i<all_strong_tag.length; i++){
        all_strong_tag[i].style.color = "#c00"//【高亮字体颜色】
    }

})();