User:StevenK234/Tools/Jct Replace Tool (Taiwan).js

注意:保存之后,你必须清除浏览器缓存才能看到做出的更改。Google ChromeFirefoxMicrosoft EdgeSafari:按住⇧ Shift键并单击工具栏的“刷新”按钮。参阅Help:绕过浏览器缓存以获取更多帮助。
//<nowiki>
/*
//Name: Jct Replace Tool
//Country: 台灣 Taiwan
//Language: 中文 Chinese
//Last Edit: 2018-01-03 12:06 (UTC)
*/
$.ajax('//tools-static.wmflabs.org/meta/scripts/pathoschild.templatescript.js', { dataType:'script', cache:true }).then(function() {
			$(function() {
				var add = mw.util.addPortletLink;
				$( add('p-tb', '#', '標誌取代為Jct', 'J-JRE', '公路標誌取代為Jct模板', '', '') ).click(Jct_driver);
			});
});

function Jct_replaceS(){
$(document).ready(function() {
	strOld=$('#wpTextbox1').val();
	strNew=Jct_replace(strOld);
	$('#wpTextbox1').val(strNew);
	strOld=Jct_edit_summary(strOld);
	$('#wpTextbox1').val(strNew);
 });
}

function Jct_replace(RE){
	 var d01 = "\\u005b\\u005b"; //[[
	 var d02 = "(File\\u003a|Image\\u003a)"; //圖像命名空間
	 var d03 = 0; //留空以供辨識
	     var d031 ="TWHW"; //國道
	     var d032 ="(\TW(\\u005f|\\s)\PHW)"; //省道
	     var d033 ="(\TW(\\u005f|\\s)\CHW)"; //縣市道
	 var d04 = "(\\d+|\\d)([a-z]|)"; //公路編號
	 var d05 = "\\u002e(\svg|\png|\jpg)"; //圖示副檔名
	 var d06 = "([^\\f\\n\\r\\t\\v\File\Image\\uff0c\\u3002\\u3001\\uff1a\\uff1b\\u2192]+)"; 
	 //排除含有File、Image、「,」、「。」、「、」、「:」、「;」、「→」以及空白字元(不含空格)的字串
	 var d07 = "((\\d+|\\d|\一|\二|\三|\四|\五|\六|\七|\八|\九|\十|\甲|\乙|\丙|\丁|\戊|\己|\庚|\公|\道|\支)(\號|\線|\路|))";
	 	 var d071 = "(\\u0028|\\uff08)([^\\f\\n\\r\\t\\v]+)(\\u0029|\\uff09)(\\u005d\\u005d)"; //全稱含括號
	 	 var d072 = "([^\\f\\n\\r\\t\\v]+)(\公路|\環線|\支線|\聯絡線|\高)(\\u005d\\u005d)"; //全稱
	 var d08 = "(\\u005d\\u005d|)"; //]]
	 var r01 = 0; //留空以供辨識
	 	 var r011 = new RegExp(d01+d02+d031+d04+d05+d06+d07+d08, 'gi'); //國道
	 	 	 var r0111 = new RegExp(d01+d02+d031+d04+d05+d06+d071, 'gi'); //國道全稱含括號
	 	     var r0112 = new RegExp(d01+d02+d031+d04+d05+d06+d072, 'gi'); //國道全稱
	 	 var r012 = new RegExp(d01+d02+d032+d04+d05+d06+d07+d08, 'gi'); //省道
	 	 	 var r0121 = new RegExp(d01+d02+d032+d04+d05+d06+d072, 'gi'); //省道全稱
	 	 var r013 = new RegExp(d01+d02+d033+d04+d05+d06+d07+d08, 'gi'); //縣市道
	do{RE=RE.replace(r0111,'{{Jct|country=TWN|NH|$2$3}}($7)');}while(RE.indexOf(r0111)!=-1); //國道全稱含括號
	do{RE=RE.replace(r0112,'{{Jct|country=TWN|NH-ALL|$2$3}}');}while(RE.indexOf(r0112)!=-1); //國道全稱
	do{RE=RE.replace(r0121,'{{Jct|country=TWN|PH-ALL|$4$5}}($9)');}while(RE.indexOf(r0121)!=-1); //省道全稱
	do{RE=RE.replace(r011,'{{Jct|country=TWN|NH|$2$3}}');}while(RE.indexOf(r011)!=-1); //國道
	do{RE=RE.replace(r012,'{{Jct|country=TWN|PH|$4$5}}');}while(RE.indexOf(r012)!=-1); //省道
	do{RE=RE.replace(r013,'{{Jct|country=TWN|CH|$4$5}}');}while(RE.indexOf(r013)!=-1); //縣市道
	return RE;
}

function Jct_edit_summary() {
	setoptions(minor='true');
	setreason(wgULS('將台灣公路圖示替換為{{Jct}} via [[User:StevenK234/Tools/Jct Replace Tool (Taiwan).js|Jct Replace Tool (Taiwan).js]]。', ''), 'append');
	doaction('diff');
}

function Jct_driver() {
	Jct_replaceS();
}
//</nowiki>