نوشته های من !

راجع به تجربه های شخصی از دنیای برنامه نویسی می نویسم، یا از روزمرگی هام …
تبدیل اعداد فارسی به انگلیسی در جاوا اسکریپت
نویسنده:
۲۰ مرداد ۹۳

تبدیل اعداد فارسی به انگلیسی در جاوا اسکریپت

خیلی جالبه چون معمولا همه به دنبال عکس این تبدیل هستن. ( برای تبدیل انگلیسی به فارسی من کتابخونه persian.js رو پیشنهاد میکنم ) ولی برسیم به بحث اصلی، نیاز به مقدمه ای نیست و همه چیز واضح هست، نیاز به تابعی داشتم که اعداد فارسی رو به انگلیسی تبدیل کنه و اکثر تابع هایی که پیدا کردم وقتی اعداد عربی بود به مشکل بر میخوردن و حتی با اعداد زبان فارسی در لینوکس مشکل داشتن‌. (نمیدونم مشکل از کیبرد من هست یا یونیکد اعداد تو لینوکس فرق داره، ولی در هر صورت چون جاوا اسکریپت زبان سمت کاربر هست راه حلی که ارائه میدیم باید جامع باشه.)

به هرحال، شروع کردم به ویرایش یکی از توابع موجود که نمیدونم نویسنده تابع چه کسی هستن ( اگه میدونین در بخش کامنت ها برای من ارسال کنین تا من اسم رو ذکر کنم. ) و نتیجه نهایی به این صورت شد.

 function persianToEnglish(value) {
 var newValue="";
 for (var i=0;i<value.length;i++)
 {
 var ch=value.charCodeAt(i);
 if (ch>=1776 && ch<=1785) // For Persian digits.
 {
 var newChar=ch-1728;
 newValue=newValue+String.fromCharCode(newChar);
 }
 else if(ch>=1632 && ch<=1641) // For Arabic & Unix digits.
 {
 var newChar=ch-1584;
 newValue=newValue+String.fromCharCode(newChar);
 }
 else
 newValue=newValue+String.fromCharCode(ch);
 }
 return newValue;

شما کافی هست کد بالا رو در تگ اسکریپت سایتتون قرار بدین، در زیر هم مثالی از نحوه صدا زدن تابع میبینین.

persianToEnglish(“۱۲۳۴"); // returns 1234

همونطور که میبینین در صورت وارد کردن اعداد فارسی خروجی تابع عدد انگلیسی خواهد بود.

12 پیام برای تبدیل اعداد فارسی به انگلیسی در جاوا اسکریپت

  1. ّبروفه گفت:

    بسيار متشكرم از مطالب مفيد سايت شما
    بروفه

  2. علی گفت:

    خیلی مفید بود مرسی

  3. وکیل گفت:

    خیلی ممنون، بسیار عالی بود

  4. مهدی گفت:

    سلام من ابتدا یک فایل html ایجاد کردم کد بالا را تو یه اسکریپت گذاشتم بعد تو تگ p از html یک تگ اسکریپیپت گذاشتم و تابع فراخوانی کردم هیچ پاسخی دریافت نشد!!!
    و خروجی نداشت
    شما این تابع چطوری اجرا می کنین؟؟؟

    • علا عالم فلکی گفت:

      با سلام،
      این تابع مقدار خروجی رو چاپ نمیکنه. شما برای دیدن دادن مقدار خروجی یا می‌تونین از تابع alert استفاده کنین. به این صورت alert(persianToEnglish(“۱۲۳۴")); یا می‌تونین با استفاده از تابعی مانند .html() (در jQuery و یا توابع مشابه) خروجی رو در یک قسمت خاص نمایش بدین.

  5. مهدی گفت:

    اقا من میخام یه شمارشگر جاوااسکریپت تو صفحات html که تعداد محصولات و نمونه کارهام که ار یک تا 1000 میشمره را اعدادش فارسی کم بنظر شما میشه؟

    • علا عالم فلکی گفت:

      با سلام،
      شما یک جستجوی فارسی هم انجام بدین با متن زیر،

      ایجاد یک شمارنده فارسی جاوا اسکریپت

      حتما به نتیجه مورد نظرتون میرسین، در مورد فارسی کردن اسکریپت موجود هم راه‌هایی هست، که ساده‌ترین و غیر استانداردترین استفاده کردن از فونتی هست که اعداد رو فارسی میکنه.

  6. وصال گفت:

    دست شما درد نکنه بسیار مفید.
    موفق باشید
    ☺☺☺☺☺☺☺☺☺☺☺☺☺

  7. وب ایکسو گفت:

    خیلی وبلاگ خوبی دارین، ممنون

  8. حسین گفت:

    خدا پدر مادرتو بیامورزه

  9. شهرام گفت:

    بسیار عالی بود ، ممنون مهندس

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *