User:A2569875/動員令工作區/字數評估.js

注意:保存之后,你必须清除浏览器缓存才能看到做出的更改。Google ChromeFirefoxMicrosoft EdgeSafari:按住⇧ Shift键并单击工具栏的“刷新”按钮。参阅Help:绕过浏览器缓存以获取更多帮助。
var article_text = $('#wpTextbox1').text();
//移除Ref
article_text = article_text.replace(/<\s*ref\s+[^\>]+\/>/ig,'').replace(/<\s*ref/ig,'<div class="wikiref" ').replace(/<\s*\/\s*ref/ig,'</div');
var html_article_element = $('<div>').html(article_text);
html_article_element.find('.wikiref').remove();
var article_no_ref = html_article_element.text();
//標記文件以便移除
article_no_ref = article_no_ref.replace(/\[\[([^\]\|\:]+)\:/g,function(text,ns){
	if(!!/(image|file|[文檔档][案件]|[圖图]像|媒[體体]|media)/i.exec(ns)){
		return '<span class="file temp"></span>';
	}
	return text;
});
//移除分類
article_no_ref = article_no_ref.replace(/\[\[([^\]\|\:]+\:[^\]\|]+)\]\]/g,'[[$1|<span></span>]]');
//移除內部/外部連結
article_no_ref = article_no_ref.replace(/\[\[([^\]\|]+)\]\]/g,'[[$1|$1]]').replace(/\[\[[^\]\|]+\|([^\]]+)\]\]/g,'$1').replace(/\[([^\]]+)\]/g,'[$1 <span></span>]').replace(/\[[^\s]+\s+([^\]]+)\]/g,'$1');
//移除文件
article_no_ref = article_no_ref.replace(/\<span\s+class=\"file temp\"><\/span>([^\]]+)\]+/ig,function(text,file_data){
	var par_list = file_data.split('|');
	var text = par_list[par_list.length-1];
	if(!/^[0-9]+[a-z0-9]+$/.exec(text)){
		return text;
	}
	return '<span></span>';
});
//計算位元組數
function bytecount(text) {
	text = text.replace(/[\u0000-\u007F]/g, '.');
	text = text.replace(/[\u0080-\u07FF\uD800-\uDFFF]/g, '..');
	text = text.replace(/[\u0800-\uD7FF\uE000-\uFFFF]/g, '...');
	return text.length;
};
html_article_element = $('<div>').html(article_no_ref);
//純注釋(XML注釋符<!-- -->及使用其注釋之內容)不計入
article_no_ref = html_article_element.text();
article_no_ref = article_no_ref.replace(/[\n\r]+/ig,'<br/>').replace(/\s+/ig,' ').replace(/\<\s*br[^\>]*>/ig,'\n');
console.log(bytecount(article_no_ref));