妖火自动转英文半角

对于妖火论坛 自动转英文半角

  1. // ==UserScript==
  2. // @name 妖火自动转英文半角
  3. // @namespace http://tampermonkey.net/
  4. // @version 0.2
  5. // @description 对于妖火论坛 自动转英文半角
  6. // @author yh翼城
  7. // @match *://yaohuo.me/bbs-*
  8. // @match *://www.yaohuo.me/bbs-*
  9. // @license MIT
  10. // @grant none
  11. // ==/UserScript==
  12.  
  13. (function() {
  14. 'use strict';
  15.  
  16. // 写个映射对象,存全角符号到半角符号的对应关系
  17. const fullToHalfMap = {
  18. ',': ',', // 全角逗号
  19. '。': '.', // 全角句号
  20. '!': '!', // 全角感叹号
  21. '?': '?', // 全角问号
  22. ':': ':', // 全角冒号
  23. ';': ';', // 全角分号
  24. '(': '(', // 全角左括号
  25. ')': ')', // 全角右括号
  26. '【': '[', // 全角左方括号
  27. '】': ']', // 全角右方括号
  28. '《': '<', // 全角左尖括号
  29. '》': '>', // 全角右尖括号
  30. '“': '"', // 全角双引号
  31. '”': '"', // 全角双引号
  32. '‘': "'", // 全角单引号
  33. '’': "'", // 全角单引号
  34. ' ': ' ' // 全角空格
  35. };
  36. function replace(node) {
  37. if (node.nodeType === Node.TEXT_NODE) {
  38. let text = node.nodeValue;
  39. for (const [full, half] of Object.entries(fullToHalfMap)) {
  40. text = text.split(full).join(half);
  41. }
  42. node.nodeValue = text;
  43. } else {
  44. for (let child of node.childNodes) {
  45. replace(child);
  46. }
  47. }
  48. }
  49. window.onload = function() {
  50. replace(document.body);
  51. };
  52. })();

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址