您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Detect and highlight date formats xxxx-xx-xx and xxxx年xx月xx日
当前为
// ==UserScript== // @name 日期改色 // @namespace http://tampermonkey.net/ // @version 1.1 // @description Detect and highlight date formats xxxx-xx-xx and xxxx年xx月xx日 // @author Kimi // @match *://*/* // @grant none // @license MIT // ==/UserScript== (function() { 'use strict'; // '',// 👉 // 定义日期格式的正则表达式 // 狗皮膏药空格 :(?:\\s)? ' +kg+ ' const kg = '(?:\\s)?'; const noNum = '(?!\\d)'; //' +noNum+ ' const datePatterns = [ noNum+ '\\d{4}' +noNum +kg+ '(?:-|.)' +kg+ noNum+ '\\d{2}' +noNum +kg+ '(?:-|.)' +kg+ noNum+ '\\d{2}' +noNum, // 👉 0000-00-00 '\\b\\d{4}' +kg+ '-' +kg+ '\\d{2}' +kg+ '-' +kg+ '\\d{2}\\b', // 👉 0000-00-00 '(截(?:至|止))?\\d+' +kg+ '年' +kg+ '\\d+' +kg+ '月' +kg+ '\\d+' +kg+ '日', // 👉 0000年00月00日 '\\d+' +kg+ '年' +kg+ '\\d+' +kg+ '(?:月)?' +kg+ '(?:-|~)' +kg+ '\\d+月', // 👉 0000年00-00月 '\\d+' +kg+ '(?:年|月)' +kg+ '\\d+' +kg+ '(?:月|日)', // 👉 0000年00月 '(?:(\\d+)|(?:上个|最新|春节|今|去|前|明|本))?' +kg+ '年?' +kg+ '第?(?:一|二|三|四|两|五|六|七|八|九|单|两)?个?(?:季度|月)', // 👉 0000年一季度 '\\b\\d{1,2}' +kg+ '-' +kg+ '\\d{1,2}' +kg+ '(?=\\s|$)', // 👉 00-00 '(?:一|二|三|四|五|六|七|八|九|十|十一|十二)' +kg+ '月' +kg+ '(?:十|二十|三十)?' +kg+ '(?:一|二|三|四|五|六|七|八|九)' +kg+ '(?:日|号)',// 👉 一月一日 '(?:\\d{2}' +noNum+ '|\\d{4}' +noNum+ '|(?:一|二|三|四|五|六|七|八|九|十|十一|十二))' +kg+ '(?:财年|年)?' +kg+ '(?:-|~|、|to|至|到)' +kg+ '(?:\\d{2}' +noNum+ '|\\d{4}' +noNum+ '|(?:一|二|三|四|五|六|七|八|九|十|十一|十二))' +kg+ '(?:财年|年|个月|月)?', //👉 0000年 - 0000年 '\\d+' +kg+ '(?:财年|年)' +kg+ '(?:(?:Q|H)\\d+)', // 👉 0000年Q1 '(?:过去|最近)?' +kg+ '(?:\\d{1,4})' +kg+ '(?:财年|年底|年|秒|小时|分钟|天|周|月|个月)', // 👉 0000 年 '(?:(截(?:至|止))|(?:前年|今年|明年))' +kg+ '\\d{1,12}' +kg+ '月'+kg+ '(?:日|底)?', // 今年0月0日 '(?:\\b)?(?:昨天|今天)' +kg+ '(?:\\d{1}' +noNum+ '|\\d{2}' +noNum+ ')' +kg+ ':' +kg+ '(?:\\d{1}' +noNum+ '|\\d{2}' +noNum+ ')', // 👉 昨/今天 00:00 '(?:\\b)?(?:\\d+)?(?:前天|昨天|今天|上半年|下半年|半年|最近|(近(?:一|两|三|四|五|六|七|八|九)年(半)?))',// 👉 前天 '(?:未来)?' +kg+ '(?:(?:一|二|三|四|五|六|七|八|九|十|十一|十二)|\\d+)' +kg+ '(?:秒|小时|分钟|天|周|月|个月|年)' +kg+ '(?:之前|前|来)?', // 👉 00小时前 '(?:Mon|Tue|Wed|Thu|Fri|Sat|Sun|Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday)' +kg+ '[A-Za-z]' +kg+ '\\d{1,2},' +kg+ '\\d{4}' +kg+ '(?=\\s|$)', // 👉 Wed April 30, 2025 '(?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec|January|February|March|April|May|June|July|August|September|October|November|December|early)' +kg+ '\\d{1,2}' +kg+ ',' +kg+ '\\d{4}',// 👉 May 05, 2025 '\\d{1,2}?' +kg+ '(?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec|January|February|March|April|May|June|July|August|September|October|November|December|early)' +kg+ '\\d{4}',// 👉 26 February 2024 'Q\\d+' +kg+ '\\d{4}' +noNum,// 👉 Q4 2023 '(?:in|to|for|into|of|by|since|at|on|with|from|about|through|over|under|between|among|across|toward|towards|against|beside|before|after|except|including|like|without)' +kg+ '\\d{4}(?!.)' +noNum,// 👉 in 2024 'q' +kg+ '\\d+' +kg+ '(?:in|to|for|into|of|by|since|at|on|with|from|about|through|over|under|between|among|across|toward|towards|against|beside|before|after|except|including|like|without)' +kg+ '\\d{4}' +noNum,// 👉 Q4 of 2023 ]; const dateFormatRegex = new RegExp(datePatterns.join('|'), 'gi'); // 亮绿:#6bd167✔ 暗绿:#338143 英伟达绿:#76B900 鼠标绿:#BFFF00 微信绿:#52CE42✔ 沉浸式翻译绿:#67CC51✔ 鹦鹉绿:#5bae23✔ // #41b349 #43b244 #41ae3c // 定义要应用的样式 const style = ` color: #5bae23 !important; font-weight: 600 !important; /*font-size: 15px !important;*/ font-family: "Microsoft YaHei" !important; text-shadow: none !important; `; // 遍历页面中所有的元素 const elements = document.querySelectorAll('*'); setTimeout(() => { elements.forEach(element => { // 获取元素的所有文本节点 const textNodes = getTextNodes(element); // 遍历每个文本节点 textNodes.forEach(textNode => { // 检查文本内容是否包含日期格式 if (dateFormatRegex.test(textNode.nodeValue)) { // 匹配所有日期格式 const matches = textNode.nodeValue.match(dateFormatRegex); // 从后向前处理每个匹配项 for (let i = matches.length - 1; i >= 0; i--) { const match = matches[i]; const index = textNode.nodeValue.indexOf(match); // 创建一个新 <font> 元素 const span = document.createElement('font'); span.style.cssText = style; span.textContent = match; // 使用 Range 来分割文本节点 const range = new Range(); range.setStart(textNode, index); range.setEnd(textNode, index + match.length); // 替换匹配的文本节点部分 range.deleteContents(); range.insertNode(span); } } }); }); }, 1000); // 延迟 0.5 秒 // 获取元素的所有文本节点 function getTextNodes(node) { const textNodes = []; if (node.nodeType === Node.TEXT_NODE) { textNodes.push(node); } else if (node.nodeType === Node.ELEMENT_NODE) { for (let child of node.childNodes) { textNodes.push(...getTextNodes(child)); } } return textNodes; } })();
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址