Non-Printable Character Detection

Replace non-printable characters, e.g., zero-width spaces, with a visible symbol.

目前为 2021-09-16 提交的版本。查看 最新版本

// ==UserScript==
// @name         Non-Printable Character Detection
// @namespace    https://greasyfork.org/users/193469
// @description  Replace non-printable characters, e.g., zero-width spaces, with a visible symbol.
// @version      1.1
// @author       Rui LIU (@liurui39660)
// @match        *://*/*
// @icon         https://icons.duckduckgo.com/ip2/example.com.ico
// @license      MIT
// @run-at       document-end
// ==/UserScript==

(function () {
	'use strict';

	const regex = /\p{Cf}/gu; // https://stackoverflow.com/a/12054775/8056404
	const to = '\u2756'; // ❖

	const walker = document.createTreeWalker(document.body, NodeFilter.SHOW_TEXT);
	const replace = () => {
		let node;
		while (node = walker.nextNode()) {
			node.nodeValue = node.nodeValue.replaceAll(regex, to);
		}
	}

	replace();
	new MutationObserver(mutations => {
		for (const mutation of mutations) {
			for (const node of mutation.addedNodes) {
				walker.currentNode = node;
				replace();
			}
		}
	}).observe(document.body, {subtree: true, childList: true});
})();