利用者:Naggy Nagumo/util.js

出典: フリー多機能辞典『ウィクショナリー日本語版(Wiktionary)』
ナビゲーションに移動 検索に移動

注意: 保存後、変更を確認するにはブラウザーのキャッシュを消去する必要がある場合があります。

  • Firefox / Safari: Shift を押しながら 再読み込み をクリックするか、Ctrl-F5 または Ctrl-R を押してください (Mac では ⌘-R)
  • Google Chrome: Ctrl-Shift-R を押してください (Mac では ⌘-Shift-R)
  • Internet Explorer / Microsoft Edge: Ctrl を押しながら 最新の情報に更新 をクリックするか、Ctrl-F5 を押してください
  • Opera: Ctrl-F5を押してください
// <nowiki>
const UTIL = {
	kata2hira: function(str) {
		return str.replace(/[\u30a1-\u30f6]/g, function(match) {
			const chr = match.charCodeAt(0) - 0x60;
			return String.fromCharCode(chr);
		});
	},

	sortkey: function(str) {
		let sort2 = UTIL.kata2hira(str);
		sort2 = sort2
			.replace(/([あぁかがさざただなはばぱまやゃらわ])ー/g, '$1あ')
			.replace(/([いぃきぎしじちぢにひびぴみりゐ])ー/g, '$1い')
			.replace(/([うぅくぐすずつづぬふぶぷむゆゅるゔ])ー/g, '$1う')
			.replace(/([えぇけげせぜてでねへべぺめれゑ])ー/g, '$1え')
			.replace(/([おぉこごそぞとどのほぼぽもよょろを])ー/g, '$1お')
			.replace(/[・゠::]/g, '');
		let sort1 = sort2
			.replace(/[がぎぐげござじずぜぞだぢづでどばびぶべぼ]/g, function(match) {
				var chr = match.charCodeAt(0) - 1;
				return String.fromCharCode(chr);
			})
			.replace(/[ぱぴぷぺぽ]/g, function(match) {
				var chr = match.charCodeAt(0) - 2;
				return String.fromCharCode(chr);
			})
			.replace(/[ぁぃぅぇぉっゃゅょゎ]/g, function(match) {
				var chr = match.charCodeAt(0) + 1;
				return String.fromCharCode(chr);
			})
			.replace(/ゔ/g, 'う');
		
		let sortkey;
		if (sort1 === sort2) {
			sortkey = sort1;
		}
		else {
			sortkey = sort1 + ' ' + sort2;
		}
		
		return {
			sort1: sort1,
			sort2: sort2,
			sortkey: sortkey
		};
	},

	code3_to_code2_t: {
		"abk": "ab",
		"aar": "aa",
		"afr": "af",
		"aka": "ak",
		"sqi": "sq",
		"amh": "am",
		"ara": "ar",
		"arg": "an",
		"hye": "hy",
		"asm": "as",
		"ava": "av",
		"ave": "ae",
		"aym": "ay",
		"aze": "az",
		"bam": "bm",
		"bak": "ba",
		"eus": "eu",
		"bel": "be",
		"ben": "bn",
		"bih": "bh",
		"bis": "bi",
		"bos": "bs",
		"bre": "br",
		"bul": "bg",
		"mya": "my",
		"cat": "ca",
		"cha": "ch",
		"che": "ce",
		"nya": "ny",
		"zho": "zh",
		"chv": "cv",
		"cor": "kw",
		"cos": "co",
		"cre": "cr",
		"hrv": "hr",
		"ces": "cs",
		"cze": "cs",
		"dan": "da",
		"div": "dv",
		"nld": "nl",
		"dzo": "dz",
		"eng": "en",
		"epo": "eo",
		"est": "et",
		"ewe": "ee",
		"fao": "fo",
		"fij": "fj",
		"fin": "fi",
		"fra": "fr",
		"ful": "ff",
		"glg": "gl",
		"kat": "ka",
		"deu": "de",
		"ell": "el",
		"grn": "gn",
		"guj": "gu",
		"hat": "ht",
		"hau": "ha",
		"hbs": "sh",
		"heb": "he",
		"her": "hz",
		"hin": "hi",
		"hmo": "ho",
		"hun": "hu",
		"ina": "ia",
		"ind": "id",
		"ile": "ie",
		"gle": "ga",
		"ibo": "ig",
		"ipk": "ik",
		"ido": "io",
		"isl": "is",
		"ita": "it",
		"iku": "iu",
		"jpn": "ja",
		"jav": "jv",
		"kal": "kl",
		"kan": "kn",
		"kau": "kr",
		"kas": "ks",
		"kaz": "kk",
		"khm": "km",
		"kik": "ki",
		"kin": "rw",
		"kir": "ky",
		"kom": "kv",
		"kon": "kg",
		"kor": "ko",
		"kur": "ku",
		"kua": "kj",
		"lat": "la",
		"ltz": "lb",
		"lug": "lg",
		"lim": "li",
		"lin": "ln",
		"lao": "lo",
		"lit": "lt",
		"lub": "lu",
		"lav": "lv",
		"glv": "gv",
		"may": "ms",
		"mkd": "mk",
		"mlg": "mg",
		"msa": "ms",
		"mal": "ml",
		"mlt": "mt",
		"mri": "mi",
		"mar": "mr",
		"mah": "mh",
		"mon": "mn",
		"nau": "na",
		"nav": "nv",
		"nob": "nb",
		"nde": "nd",
		"nep": "ne",
		"ndo": "ng",
		"nno": "nn",
		"nor": "no",
		"iii": "ii",
		"nbl": "nr",
		"oci": "oc",
		"oji": "oj",
		"chu": "cu",
		"orm": "om",
		"ori": "or",
		"oss": "os",
		"pan": "pa",
		"pli": "pi",
		"fas": "fa",
		"pol": "pl",
		"pus": "ps",
		"por": "pt",
		"que": "qu",
		"roh": "rm",
		"run": "rn",
		"ron": "ro",
		"rus": "ru",
		"san": "sa",
		"srd": "sc",
		"snd": "sd",
		"sme": "se",
		"smo": "sm",
		"sag": "sg",
		"srp": "sr",
		"gla": "gd",
		"sna": "sn",
		"sin": "si",
		"slk": "sk",
		"slo": "sk",
		"slv": "sl",
		"som": "so",
		"sot": "st",
		"spa": "es",
		"sun": "su",
		"swa": "sw",
		"ssw": "ss",
		"swe": "sv",
		"tam": "ta",
		"tel": "te",
		"tgk": "tg",
		"tha": "th",
		"tir": "ti",
		"bod": "bo",
		"tuk": "tk",
		"tgl": "tl",
		"tsn": "tn",
		"ton": "to",
		"tur": "tr",
		"tso": "ts",
		"tat": "tt",
		"twi": "tw",
		"tah": "ty",
		"uig": "ug",
		"ukr": "uk",
		"urd": "ur",
		"uzb": "uz",
		"ven": "ve",
		"vie": "vi",
		"vol": "vo",
		"wln": "wa",
		"cym": "cy",
		"wol": "wo",
		"fry": "fy",
		"xho": "xh",
		"yid": "yi",
		"yor": "yo",
		"zha": "za",
		"zul": "zu"
	},

	code3_to_code2: function(code) {
		const code3 = UTIL.code3_to_code2_t[code];
		if(code3 && code3 !== code){
			return code3;
		}
		else{
			return code;
		}
	}
};
// </nowiki>