بحث ویکی‌پدیا:ویکی‌پروژه ابزارهای ویرایشی/بایگانی ۱

message: این پروژه را دارم آماده‌سازی می‌کنم، اگر سوالی یا نظری دارید با من تماس بگیرید ▬ حجت/ب ۱۹:۳۰، ۲ مه ۲۰۰۷ (UTC)
thread_title:  بدون عنوان 

message: من یک اصلاحاتی روی تابع 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;
}
thread_title:  اصلاحات