کاربر:Behaafarid/BehaafaridTools.js
از ویکیپدیا، دانشنامهٔ آزاد.
نکته: پس از ذخیرهسازی ممکن است برای دیدن تغییرات نیاز باشد که حافظهٔ نهانی مرورگر خود را خالی کنید. موزیلا / فایرفاکس / Safari: کلید Shift را نگهدارید و روی دکمهٔ Reload کلیک کنید، یا کلیدهای Ctrl-Shift-R را با هم فشار دهید (در رایانههای اپل مکینتاش کلیدهای Cmd-Shift-R)؛ اینترنت اکسپلورر: کلید Ctrl نگهدارید و روی دکمهٔ Refresh کلیک کنید، یا کلیدهای Ctrl-F5 را با هم فشار دهید؛ Konqueror: روی دکمهٔ Reload کلیک کنید و یا کلید F5 را فشار دهید؛ اُپرا: کاربران اُپرا ممکن است لازم باشد که بطور کامل حافظهٔ نهانی مرورگر را در منوی Tools→Preferences خالی کنند.
/*{{چپچین}}*/ /*<pre>*/ function YKarabic (obj) { s = obj.value; var sold= s; //ي --> ی و ك --> ک //برای جلوگیری از خرابکاری در پیوند تصویرها و میان\u200cویکی s=s.replace (/\[\[([^\]]*?\:[^\]]*?)ي(.*?)\]\]/g, '[[$1\u200c\u200c\u200cی\u200c\u200c\u200c$2]]'); s=s.replace (/\[\[([^\]]*?\:[^\]]*?)ك(.*?)\]\]/g, '[[$1\u200c\u200c\u200cک\u200c\u200c\u200c$2]]'); while (sold!=s) { sold =s; s=s.replace (/\[\[([^\]]*?\:[^\]]*?)ي(.*?)\]\]/g, '[[$1\u200c\u200c\u200cی\u200c\u200c\u200c$2]]'); s=s.replace (/\[\[([^\]]*?\:[^\]]*?)ك(.*?)\]\]/g, '[[$1\u200c\u200c\u200cک\u200c\u200c\u200c$2]]'); } s = s.replace(/ي/g, 'ی'); s = s.replace(/ك/g, 'ک'); s= s.replace(/\u200c\u200c\u200cی\u200c\u200c\u200c/g, 'ي'); s= s.replace(/\u200c\u200c\u200cک\u200c\u200c\u200c/g, 'ك'); //اصلاح ی و ک در متنهای عربی sold = s; s = s.replace(/\{\{عربی([^(\}\})]*?)ی(.*?)\}\}/g, '{{عربی$1ي$2}}'); s = s.replace(/\{\{عربی([^(\}\})]*?)ک(.*?)\}\}/g, '{{عربی$1ك$2}}'); s = s.replace(/\{\{آغاز\sعربی\}\}([^(پایان\sعربی\}\})]*?)ی(.*?)پایان\sعربی\}\}/g, '{{آغاز عربی}}$1ي$2پایان عربی}}'); s = s.replace(/\{\{شروع\sعربی\}\}([^(پایان\sعربی\}\})]*?)ی(.*?)پایان\sعربی\}\}/g, '{{شروع عربی}}$1ي$2پایان عربی}}'); s = s.replace(/\{\{آغاز\sعربی\}\}([^(پایان\sعربی\}\})]*?)ک(.*?)پایان\sعربی\}\}/g, '{{آغاز عربی}}$1ك$2پایان عربی}}'); s = s.replace(/\{\{شروع\sعربی\}\}([^پایان\sعربی(\}\})]*?)ک(.*?)پایان\sعربی\}\}/g, '{{شروع عربی}}$1ك$2پایان عربی}}'); s = s.replace(/\[\[ar:(.*?)ی(.*?)\]\]/g, '[[ar:$1ي$2]]'); s = s.replace(/\[\[ar:(.*?)ک(.*?)\]\]/g, '[[ar:$1ك$2]]'); while (sold!=s) { sold=s; s = s.replace(/\{\{عربی([^(\}\})]*?)ی(.*?)\}\}/g, '{{عربی$1ي$2}}'); s = s.replace(/\{\{عربی([^(\}\})]*?)ک(.*?)\}\}/g, '{{عربی$1ك$2}}'); s = s.replace(/\{\{آغاز\sعربی\}\}([^(پایان\sعربی\}\})]*?)ی(.*?)پایان\sعربی\}\}/g, '{{آغاز عربی}}$1ي$2پایان عربی}}'); s = s.replace(/\{\{شروع\sعربی\}\}([^(پایان\sعربی\}\})]*?)ی(.*?)پایان\sعربی\}\}/g, '{{شروع عربی}}$1ي$2پایان عربی}}'); s = s.replace(/\{\{آغاز\sعربی\}\}([^(پایان\sعربی\}\})]*?)ک(.*?)پایان\sعربی\}\}/g, '{{آغاز عربی}}$1ك$2پایان عربی}}'); s = s.replace(/\{\{شروع\sعربی\}\}([^پایان\sعربی(\}\})]*?)ک(.*?)پایان\sعربی\}\}/g, '{{شروع عربی}}$1ك$2پایان عربی}}'); s = s.replace(/\[\[ar:(.*?)ی(.*?)\]\]/g, '[[ar:$1ي$2]]'); s = s.replace(/\[\[ar:(.*?)ک(.*?)\]\]/g, '[[ar:$1ك$2]]'); } //حدف نویسهٔ ممنوع ۰۶۴۹ sold = s; //جلوگیری از تغییر متن نشان عربی خورده و تصویر و پیوندهای میانویکی s = s.replace (/\[\[([^\]]*?\:[^\]]*?)ى(.*?)\]\]/g, '[[$1\u200c\u200c\u200cی\u200c\u200c\u200c$2]]'); s = s.replace(/\{\{عربی(.*?)ى(.*?)\}\}/g, '{{عربی$1\u200c\u200c\u200cی\u200c\u200c\u200c$2}}'); s = s.replace(/\{\{آغاز عربی(.*?)ى(.*?)پایان عربی\}\}/g, '{{آغاز عربی$1\u200c\u200c\u200cی\u200c\u200c\u200c$2پایان عربی}}'); s = s.replace(/\{\{شروع عربی(.*?)ى(.*?)پایان عربی\}\}/g, '{{شروع عربی$1\u200c\u200c\u200cی\u200c\u200c\u200c$2پایان عربی}}'); while (sold!=s) { sold=s; s = s.replace (/\[\[([^\]]*?\:[^\]]*?)ى(.*?)\]\]/g, '[[$1\u200c\u200c\u200cی\u200c\u200c\u200c$2]]'); s = s.replace(/\{\{عربی(.*?)ى(.*?)\}\}/g, '{{عربی$1\u200c\u200c\u200cی\u200c\u200c\u200c$2}}'); s = s.replace(/\{\{آغاز عربی(.*?)ى(.*?)پایان عربی\}\}/g, '{{آغاز عربی$1\u200c\u200c\u200cی\u200c\u200c\u200c$2پایان عربی}}'); s = s.replace(/\{\{شروع عربی(.*?)ى(.*?)پایان عربی\}\}/g, '{{شروع عربی$1\u200c\u200c\u200cی\u200c\u200c\u200c$2پایان عربی}}'); } s = s.replace(/ى/g, 'ی'); s = s.replace(/\u200c\u200c\u200cی\u200c\u200c\u200c/g, 'ى'); sold=s; //اصلاح ردهها s = s.replace(/\[\[(رده|Category|category):(.*?)(ى|ي)(.*?)\]\]/g, '[[$1:$2ی$4]]'); s = s.replace(/\[\[(رده|Category|category):(.*?)ك(.*?)\]\]/g, '[[$1:$2ک$3]]'); while(sold!=s) { sold=s; s = s.replace(/\[\[(رده|Category|category):(.*?)(ى|ي)(.*?)\]\]/g, '[[$1:$2ی$4]]'); s = s.replace(/\[\[(رده|Category|category):(.*?)ك(.*?)\]\]/g, '[[$1:$2ک$3]]'); } obj.value = s; } function FM (obj) { s = obj.value; //تبدیل الگو {{فم}} به نویسه s = s.replace(/\{\{فم\}\}/g,'\u200c'); //تبدیل چند فاصلهٔ مجازی پشت\u200cسرهم به یک فاصله مجازی. s = s.replace(/(\u200c)+/g, '\u200c'); //حذف فاصلهٔ مجازی بعد از آادذرزژو . ، « » s = s.replace(/([\.،«»\:؛\sآادذرزژو])\u200c/g,'$1'); //اصلاح می پیشوندی s = s.replace(/\sمی\s/g, ' می\u200c'); s = s.replace(/\sنمی\s/g, ' نمی\u200c'); s = s.replace(/\sمی\u200cو\s/g, ' می و'); //فعلهای مصدر بودن s = s.replace(/ه\sام([\]\.،\:»\)\s])/g, 'ه\u200cام$1'); s = s.replace(/ه\sای([\]\.،\:»\)\s])/g, 'ه\u200cای$1'); s = s.replace(/([^ا])ه\sاست([\]\.،\:»\)\s])/g, '$1ه\u200cاست$2'); s = s.replace(/ه\sایم([\]\.،\:»\)\s])/g, 'ه\u200cایم$1'); s = s.replace(/ه\sاید([\]\.،\:»\)\s])/g, 'ه\u200cاید$1'); s = s.replace(/ه\sاند([\]\.،\:»\)\s])/g, 'ه\u200cاند$1'); /*چسباندن ها بر اساس مفاد دستور خط فرهنگستان و شیوه\u200cنامهٔ ویکی\u200cپدیا:*/ //تمام «ها» با فاصلهٔ مجازی میچسبند. و این مطابق مفاد آخرین شیوهنامه غلط نیست. s=s.replace(/\sها([\]\.،\:»\)\s])/g, '\u200cها$1'); s=s.replace(/\sها(ی|یی|یم|یت|یش|مان|تان|شان)([\]\.،\:»\)\s])/g, '\u200cها$1$2'); //موارد جزئی دیگر: هرچند ربطی به ZWNJ ندارد. ولی فعلاً اینجا میگذاریمشان تا بعداً بفرستیمشان جایی دیگر. s=s.replace(/ا\sً/g,'اً') obj.value = s; } function NonStandard (obj) { s = obj.value; //همزه روی ی s = s.replace(/ه\u200cی\s/g, 'هٔ '); s = s.replace(/ه\sی\s/g, 'هٔ '); s = s.replace(/ۀ/g, 'هٔ'); s = s.replace(/هء /g, 'هٔ '); //نویسهٔ غیراستاندارد برای تنوین s = s.replace(/ا"/g,'اً') //تبدیل الگو {{ی}} به نویسه s = s.replace(/\{\{ی\}\}/g,'ٔ'); //فارسیسازی گیومه s=s.replace(/"(.*?)"/g,'«$1»'); s=s.replace(/«([\w]*?)»/g,'"$1"'); s=s.replace(/(\w)=«([^"]*?)»/g,'$1="$2"'); // to fix the problem with HTML double quotes. obj.value = s; } function digits (obj) { //Convert Codes to Characters fromEntityToUtf8(obj); s = obj.value; var sold=s; //برای جلوگیری از خرابکاری در پیوند تصویرها و میانویکی s=s.replace (/\[\[([^\]]*?\:[^\]]*?)1(.*?)\]\]/g, '[[$1\u200c\u200c\u200c۱\u200c\u200c\u200c$2]]'); s=s.replace (/\[\[([^\]]*?\:[^\]]*?)2(.*?)\]\]/g, '[[$1\u200c\u200c\u200c۲\u200c\u200c\u200c$2]]'); s=s.replace (/\[\[([^\]]*?\:[^\]]*?)3(.*?)\]\]/g, '[[$1\u200c\u200c\u200c۳\u200c\u200c\u200c$2]]'); s=s.replace (/\[\[([^\]]*?\:[^\]]*?)4(.*?)\]\]/g, '[[$1\u200c\u200c\u200c۴\u200c\u200c\u200c$2]]'); s=s.replace (/\[\[([^\]]*?\:[^\]]*?)5(.*?)\]\]/g, '[[$1\u200c\u200c\u200c۵\u200c\u200c\u200c$2]]'); s=s.replace (/\[\[([^\]]*?\:[^\]]*?)6(.*?)\]\]/g, '[[$1\u200c\u200c\u200c۶\u200c\u200c\u200c$2]]'); s=s.replace (/\[\[([^\]]*?\:[^\]]*?)7(.*?)\]\]/g, '[[$1\u200c\u200c\u200c۷\u200c\u200c\u200c$2]]'); s=s.replace (/\[\[([^\]]*?\:[^\]]*?)8(.*?)\]\]/g, '[[$1\u200c\u200c\u200c۸\u200c\u200c\u200c$2]]'); s=s.replace (/\[\[([^\]]*?\:[^\]]*?)9(.*?)\]\]/g, '[[$1\u200c\u200c\u200c۹\u200c\u200c\u200c$2]]'); s=s.replace (/\[\[([^\]]*?\:[^\]]*?)0(.*?)\]\]/g, '[[$1\u200c\u200c\u200c۰\u200c\u200c\u200c$2]]'); s=s.replace (/\[\[([^\]]*?\:[^\]]*?)\%(.*?)\]\]/g, '[[$1\u200c\u200c\u200c٪\u200c\u200c\u200c$2]]'); // برای جلوگیری از خرابکاری در پیوند به بیرون s = s.replace(/(http[^\s]+?)1/g,'$1\u200c\u200c\u200c۱\u200c\u200c\u200c'); s = s.replace(/(http[^\s]+?)2/g,'$1\u200c\u200c\u200c۲\u200c\u200c\u200c'); s = s.replace(/(http[^\s]+?)3/g,'$1\u200c\u200c\u200c۳\u200c\u200c\u200c'); s = s.replace(/(http[^\s]+?)4/g,'$1\u200c\u200c\u200c۴\u200c\u200c\u200c'); s = s.replace(/(http[^\s]+?)5/g,'$1\u200c\u200c\u200c۵\u200c\u200c\u200c'); s = s.replace(/(http[^\s]+?)6/g,'$1\u200c\u200c\u200c۶\u200c\u200c\u200c'); s = s.replace(/(http[^\s]+?)7/g,'$1\u200c\u200c\u200c۷\u200c\u200c\u200c'); s = s.replace(/(http[^\s]+?)8/g,'$1\u200c\u200c\u200c۸\u200c\u200c\u200c'); s = s.replace(/(http[^\s]+?)9/g,'$1\u200c\u200c\u200c۹\u200c\u200c\u200c'); s = s.replace(/(http[^\s]+?)0/g,'$1\u200c\u200c\u200c۰\u200c\u200c\u200c'); s = s.replace(/(http[^\s]+?)\%/g,'$1\u200c\u200c\u200c٪\u200c\u200c\u200c'); while (sold!=s) { sold=s; s=s.replace (/\[\[([^\]]*?\:[^\]]*?)1(.*?)\]\]/g, '[[$1\u200c\u200c\u200c۱\u200c\u200c\u200c$2]]'); s=s.replace (/\[\[([^\]]*?\:[^\]]*?)2(.*?)\]\]/g, '[[$1\u200c\u200c\u200c۲\u200c\u200c\u200c$2]]'); s=s.replace (/\[\[([^\]]*?\:[^\]]*?)3(.*?)\]\]/g, '[[$1\u200c\u200c\u200c۳\u200c\u200c\u200c$2]]'); s=s.replace (/\[\[([^\]]*?\:[^\]]*?)4(.*?)\]\]/g, '[[$1\u200c\u200c\u200c۴\u200c\u200c\u200c$2]]'); s=s.replace (/\[\[([^\]]*?\:[^\]]*?)5(.*?)\]\]/g, '[[$1\u200c\u200c\u200c۵\u200c\u200c\u200c$2]]'); s=s.replace (/\[\[([^\]]*?\:[^\]]*?)6(.*?)\]\]/g, '[[$1\u200c\u200c\u200c۶\u200c\u200c\u200c$2]]'); s=s.replace (/\[\[([^\]]*?\:[^\]]*?)7(.*?)\]\]/g, '[[$1\u200c\u200c\u200c۷\u200c\u200c\u200c$2]]'); s=s.replace (/\[\[([^\]]*?\:[^\]]*?)8(.*?)\]\]/g, '[[$1\u200c\u200c\u200c۸\u200c\u200c\u200c$2]]'); s=s.replace (/\[\[([^\]]*?\:[^\]]*?)9(.*?)\]\]/g, '[[$1\u200c\u200c\u200c۹\u200c\u200c\u200c$2]]'); s=s.replace (/\[\[([^\]]*?\:[^\]]*?)0(.*?)\]\]/g, '[[$1\u200c\u200c\u200c۰\u200c\u200c\u200c$2]]'); s=s.replace (/\[\[([^\]]*?\:[^\]]*?)\%(.*?)\]\]/g, '[[$1\u200c\u200c\u200c٪\u200c\u200c\u200c$2]]'); s = s.replace(/(http[^\s]+?)1/g,'$1\u200c\u200c\u200c۱\u200c\u200c\u200c'); s = s.replace(/(http[^\s]+?)2/g,'$1\u200c\u200c\u200c۲\u200c\u200c\u200c'); s = s.replace(/(http[^\s]+?)3/g,'$1\u200c\u200c\u200c۳\u200c\u200c\u200c'); s = s.replace(/(http[^\s]+?)4/g,'$1\u200c\u200c\u200c۴\u200c\u200c\u200c'); s = s.replace(/(http[^\s]+?)5/g,'$1\u200c\u200c\u200c۵\u200c\u200c\u200c'); s = s.replace(/(http[^\s]+?)6/g,'$1\u200c\u200c\u200c۶\u200c\u200c\u200c'); s = s.replace(/(http[^\s]+?)7/g,'$1\u200c\u200c\u200c۷\u200c\u200c\u200c'); s = s.replace(/(http[^\s]+?)8/g,'$1\u200c\u200c\u200c۸\u200c\u200c\u200c'); s = s.replace(/(http[^\s]+?)9/g,'$1\u200c\u200c\u200c۹\u200c\u200c\u200c'); s = s.replace(/(http[^\s]+?)0/g,'$1\u200c\u200c\u200c۰\u200c\u200c\u200c'); s = s.replace(/(http[^\s]+?)\%/g,'$1\u200c\u200c\u200c٪\u200c\u200c\u200c'); } s = s.replace(/1/g,'۱'); s = s.replace(/\u200c\u200c\u200c۱\u200c\u200c\u200c/g,'1'); s = s.replace(/2/g,'۲'); s = s.replace(/\u200c\u200c\u200c۲\u200c\u200c\u200c/g,'2'); s = s.replace(/3/g,'۳'); s = s.replace(/\u200c\u200c\u200c۳\u200c\u200c\u200c/g,'3'); s = s.replace(/4/g,'۴'); s = s.replace(/\u200c\u200c\u200c۴\u200c\u200c\u200c/g,'4'); s = s.replace(/5/g,'۵'); s = s.replace(/\u200c\u200c\u200c۵\u200c\u200c\u200c/g,'5'); s = s.replace(/6/g,'۶'); s = s.replace(/\u200c\u200c\u200c۶\u200c\u200c\u200c/g,'6'); s = s.replace(/7/g,'۷'); s = s.replace(/\u200c\u200c\u200c۷\u200c\u200c\u200c/g,'7'); s = s.replace(/8/g,'۸'); s = s.replace(/\u200c\u200c\u200c۸\u200c\u200c\u200c/g,'8'); s = s.replace(/9/g,'۹'); s = s.replace(/\u200c\u200c\u200c۹\u200c\u200c\u200c/g,'9'); s = s.replace(/0/g,'۰'); s = s.replace(/\u200c\u200c\u200c۰\u200c\u200c\u200c/g,'0'); s = s.replace(/\%/g,'٪'); s = s.replace(/\u200c\u200c\u200c٪\u200c\u200c\u200c/g,'%'); //آوردن دخل ارقام عربی: s=s.replace(/٠/g,'۰'); s=s.replace(/١/g,'۱'); s=s.replace(/٢/g,'۲'); s=s.replace(/٣/g,'۳'); s=s.replace(/٤/g,'۴'); s=s.replace(/٥/g,'۵'); s=s.replace(/٦/g,'۶'); s=s.replace(/٧/g,'۷'); s=s.replace(/٨/g,'۸'); s=s.replace(/٩/g,'۹'); //ممیز و هزارگان s = s.replace(/([۱۲۳۴۵۶۷۸۹۰])\.([۱۲۳۴۵۶۷۸۹۰])/g,'$1٫$2'); s = s.replace(/([۱۲۳۴۵۶۷۸۹۰]),([۱۲۳۴۵۶۷۸۹۰])/g,'$1٬$2'); obj.value = s; } function Punctuation (obj){ var s = obj.value; // s=s.replace(/([^\n^\r])([\(«])/g,'$1 $2'); // s=s.replace(/([^(\<pre\>)])\s+/g,'$1 '); s=s.replace(/([\(«])\s/g,'$1'); s=s.replace(/\s([\)»])/g,'$1'); obj.value=s; } function SuperTool (obj){ YKarabic (obj); FM (obj); NonStandard (obj); digits (obj); Punctuation (obj); } /*</pre>*//*{{پایان چپچین}} */