بحث ویکیپدیا:ویکیپروژه ابزارهای ویرایشی
از ویکیپدیا، دانشنامهٔ آزاد.
این پروژه را دارم آمادهسازی میکنم، اگر سوالی یا نظری دارید با من تماس بگیرید ▬ حجت/ب ۱۹:۳۰، ۲ مه ۲۰۰۷ (UTC)
[ویرایش] اصلاحات
من یک اصلاحاتی روی تابع digits مربوط به اصلاح ارقام انجام دادم که در فرمولهای ریاضی دخالت نکند. در زیر قرار میدهم. مهدی (غ) ۱۹:۴۰، ۶ ژوئن ۲۰۰۷ (UTC)
/********************************************************* خلاصه تغییرات در تابع digits (مربوط به اصلاح ارقام): ۱. خلاصهتر شد ۲. خرابکاری در فرمولهای ریاضی رفع اشکال شد *********************************************************/
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');
// برای جلوگیری از خرابکاری در فرمولهای ریاضی
s=s.replace (/\<math\>(.*?)1(.*?)\<\/math\>/g,
'<math>$1\u200c\u200c\u200c۱\u200c\u200c\u200c$2</math>');
s=s.replace (/\<math\>(.*?)2(.*?)\<\/math\>/g,
'<math>$1\u200c\u200c\u200c۲\u200c\u200c\u200c$2</math>');
s=s.replace (/\<math\>(.*?)3(.*?)\<\/math\>/g,
'<math>$1\u200c\u200c\u200c۳\u200c\u200c\u200c$2</math>');
s=s.replace (/\<math\>(.*?)4(.*?)\<\/math\>/g,
'<math>$1\u200c\u200c\u200c۴\u200c\u200c\u200c$2</math>');
s=s.replace (/\<math\>(.*?)5(.*?)\<\/math\>/g,
'<math>$1\u200c\u200c\u200c۵\u200c\u200c\u200c$2</math>');
s=s.replace (/\<math\>(.*?)6(.*?)\<\/math\>/g,
'<math>$1\u200c\u200c\u200c۶\u200c\u200c\u200c$2</math>');
s=s.replace (/\<math\>(.*?)7(.*?)\<\/math\>/g,
'<math>$1\u200c\u200c\u200c۷\u200c\u200c\u200c$2</math>');
s=s.replace (/\<math\>(.*?)8(.*?)\<\/math\>/g,
'<math>$1\u200c\u200c\u200c۸\u200c\u200c\u200c$2</math>');
s=s.replace (/\<math\>(.*?)9(.*?)\<\/math\>/g,
'<math>$1\u200c\u200c\u200c۹\u200c\u200c\u200c$2</math>');
s=s.replace (/\<math\>(.*?)0(.*?)\<\/math\>/g,
'<math>$1\u200c\u200c\u200c۰\u200c\u200c\u200c$2</math>');
s=s.replace (/\<math\>(.*?)%(.*?)\<\/math\>/g,
'<math>$1\u200c\u200c\u200c٪\u200c\u200c\u200c$2</math>');
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;
}

