您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
ひらがな、カタカナ、半角カタカナの相互変換
此脚本不应直接安装。它是供其他脚本使用的外部库,要使用该库请加入元指令 // @require https://update.greasyfork.icu/scripts/460236/1151036/%E6%97%A5%E6%9C%AC%E8%AA%9E%E6%96%87%E5%AD%97%E7%A8%AE%E5%A4%89%E6%8F%9B.js
// ==UserScript== // @namespace http://tampermonkey.net/ // @exclude * // ==UserLibrary== // @author Eskey Easy // @name 日本語文字種変換 // @description ひらがな、カタカナ、半角カタカナの相互変換 // @license MIT // @version 0.1 // @grant none // ==/UserScript== // ==/UserLibrary== /** * * @param {string} str ひらがな * @returns 全角カナ * @see https://qiita.com/mimoe/items/855c112625d39b066c9a */ function hiraToKana(str) { return str.replace(/[\u3041-\u3096]/g, function (match) { var chr = match.charCodeAt(0) + 0x60; return String.fromCharCode(chr); }); } /** * * @param {string} str 全角カナ * @returns ひらがな * @see https://qiita.com/mimoe/items/855c112625d39b066c9a */ function kanaToHira(str) { return str.replace(/[\u30a1-\u30f6]/g, function (match) { var chr = match.charCodeAt(0) - 0x60; return String.fromCharCode(chr); }); } /** * * @param {string} str 全角カナ * @returns 半角カナ * @see https://www.yoheim.net/blog.php?q=20191101 */ function zenkana2Hankana(str) { var kanaMap = { ガ: 'ガ', ギ: 'ギ', グ: 'グ', ゲ: 'ゲ', ゴ: 'ゴ', ザ: 'ザ', ジ: 'ジ', ズ: 'ズ', ゼ: 'ゼ', ゾ: 'ゾ', ダ: 'ダ', ヂ: 'ヂ', ヅ: 'ヅ', デ: 'デ', ド: 'ド', バ: 'バ', ビ: 'ビ', ブ: 'ブ', ベ: 'ベ', ボ: 'ボ', パ: 'パ', ピ: 'ピ', プ: 'プ', ペ: 'ペ', ポ: 'ポ', ヴ: 'ヴ', ヷ: 'ヷ', ヺ: 'ヺ', ア: 'ア', イ: 'イ', ウ: 'ウ', エ: 'エ', オ: 'オ', カ: 'カ', キ: 'キ', ク: 'ク', ケ: 'ケ', コ: 'コ', サ: 'サ', シ: 'シ', ス: 'ス', セ: 'セ', ソ: 'ソ', タ: 'タ', チ: 'チ', ツ: 'ツ', テ: 'テ', ト: 'ト', ナ: 'ナ', ニ: 'ニ', ヌ: 'ヌ', ネ: 'ネ', ノ: 'ノ', ハ: 'ハ', ヒ: 'ヒ', フ: 'フ', ヘ: 'ヘ', ホ: 'ホ', マ: 'マ', ミ: 'ミ', ム: 'ム', メ: 'メ', モ: 'モ', ヤ: 'ヤ', ユ: 'ユ', ヨ: 'ヨ', ラ: 'ラ', リ: 'リ', ル: 'ル', レ: 'レ', ロ: 'ロ', ワ: 'ワ', ヲ: 'ヲ', ン: 'ン', ァ: 'ァ', ィ: 'ィ', ゥ: 'ゥ', ェ: 'ェ', ォ: 'ォ', ッ: 'ッ', ャ: 'ャ', ュ: 'ュ', ョ: 'ョ', '。': '。', '、': '、', ー: 'ー', '「': '「', '」': '」', '・': '・', }; var reg = new RegExp('(' + Object.keys(kanaMap).join('|') + ')', 'g'); return str .replace(reg, function (match) { return kanaMap[match]; }) .replace(/゛/g, '゙') .replace(/゜/g, '゚'); } /** * * @param {string} str 半角カナ * @returns 全角カナ * @see https://www.yoheim.net/blog.php?q=20191101 */ function hankana2Zenkana(str) { var kanaMap = { ガ: 'ガ', ギ: 'ギ', グ: 'グ', ゲ: 'ゲ', ゴ: 'ゴ', ザ: 'ザ', ジ: 'ジ', ズ: 'ズ', ゼ: 'ゼ', ゾ: 'ゾ', ダ: 'ダ', ヂ: 'ヂ', ヅ: 'ヅ', デ: 'デ', ド: 'ド', バ: 'バ', ビ: 'ビ', ブ: 'ブ', ベ: 'ベ', ボ: 'ボ', パ: 'パ', ピ: 'ピ', プ: 'プ', ペ: 'ペ', ポ: 'ポ', ヴ: 'ヴ', ヷ: 'ヷ', ヺ: 'ヺ', ア: 'ア', イ: 'イ', ウ: 'ウ', エ: 'エ', オ: 'オ', カ: 'カ', キ: 'キ', ク: 'ク', ケ: 'ケ', コ: 'コ', サ: 'サ', シ: 'シ', ス: 'ス', セ: 'セ', ソ: 'ソ', タ: 'タ', チ: 'チ', ツ: 'ツ', テ: 'テ', ト: 'ト', ナ: 'ナ', ニ: 'ニ', ヌ: 'ヌ', ネ: 'ネ', ノ: 'ノ', ハ: 'ハ', ヒ: 'ヒ', フ: 'フ', ヘ: 'ヘ', ホ: 'ホ', マ: 'マ', ミ: 'ミ', ム: 'ム', メ: 'メ', モ: 'モ', ヤ: 'ヤ', ユ: 'ユ', ヨ: 'ヨ', ラ: 'ラ', リ: 'リ', ル: 'ル', レ: 'レ', ロ: 'ロ', ワ: 'ワ', ヲ: 'ヲ', ン: 'ン', ァ: 'ァ', ィ: 'ィ', ゥ: 'ゥ', ェ: 'ェ', ォ: 'ォ', ッ: 'ッ', ャ: 'ャ', ュ: 'ュ', ョ: 'ョ', '。': '。', '、': '、', ー: 'ー', '「': '「', '」': '」', '・': '・', }; var reg = new RegExp('(' + Object.keys(kanaMap).join('|') + ')', 'g'); return str .replace(reg, function (match) { return kanaMap[match]; }) .replace(/゙/g, '゛') .replace(/゚/g, '゜'); }