「利用者:Sat.d.h./char-counter.js」の版間の差分

削除された内容 追加された内容
Sat.d.h. (会話 | 投稿記録)
新しいページ: 「/** * 文字数を種類ごとにカウントするツール。 * 下リンクによれば、ひらがなは60~70%、漢字は20~30%、カタカナ...」
(相違点なし)

2016年12月17日 (土) 03:58時点における版

/**
 * 文字数を種類ごとにカウントするツール。
 * 下リンクによれば、ひらがなは60~70%、漢字は20~30%、カタカナは10%が理想である。
 * https://books.google.co.jp/books?id=ZSkfBAAAQBAJ&pg=PA106&lpg=PA106#v=onepage&q&f=false
 * 表記法の詳細は[[w:ja:Wikipedia:表記ガイド]]を参照。
 */
(function() {
	'use strict';
	var txt = '';
	if (document.getElementById('editform')){
		txt = document.forms.editform.wpTextbox1.value;
	} else{
		txt = document.getElementById('bodyContent').textContent;
	}
	$('#p-namespaces > ul')
		.append($('<li><span><a>文字数</a></span></li>').attr({'id':'char-count'}));
	$('#char-count').click(function() {
		var hanBasic = txt.match(/[\u2e80-\u2fdf|\u3400-\u4dbf|\u4e00-\u9fff|\uf900-\ufaff]/g) || '';
		var hanSuppl = txt.match(/[\ud840-\ud87e][\udc00-\udfff]/g) || '';
		var hira = txt.match(/[あ-ゖ]/g) || '';
		var kana = txt.match(/[ア-ヺ]/g) || '';
		var numHanBasic = hanBasic.length;
		var numHanSuppl = hanSuppl.length;
		var numHira = hira.length;
		var numKana = kana.length;
		var numTotal = txt.length;
		var numHan = numHanBasic + numHanSuppl;
		var numJpan = numHan + numHira + numKana;
		var numOther = numTotal - numHan - numHira - numKana;
		alert('漢字数: ' + numHan + ' (' + Math.round(numHan / numJpan * 100) + '%) 、'
			+ 'ひらがな: ' + numHira + ' (' + Math.round(numHira / numJpan * 100) + '%) 、'
			+ 'カタカナ: ' + numKana + ' (' + Math.round(numKana / numJpan * 100) + '%) 、'
			+ 'その他: ' + numOther);
	});
}());