به طور کل گاهی اوقات پیش می‌آید که بخواهید اعداد و ارقام را از زبانی به زبان دیگر تبدیل کنید. در این مقاله قصد داریم نحوه تبدیل اعداد فارسی و عربی به انگلیسی و برعکس را در زبان‌های برنامه‌نویسی مختلف به شما آموزش دهیم.

تبدیل اعداد فارسی و عربی به انگلیسی در PHP

اگر می‌خواهید در زبان برنامه‌نویسی PHP اعداد مختلف (فارسی و عربی) را به انگلیسی تبدیل کنید، کافی است از تابع زیر استفاده کنید.

/**
 * @snippet       Convert Persian/Arabic Numbers To English Numbers
 * @source        Stack Overflow
 */

function tidaweb_convert_numbers( $string )
{
    $new_numbers = range(0, 9);

    // ۱. Persian HTML decimal
    $persian_decimal = array('۰', '۱', '۲', '۳', '۴', '۵', '۶', '۷', '۸', '۹');
    // ۲. Arabic HTML decimal
    $arabic_decimal = array('٠', '١', '٢', '٣', '٤', '٥', '٦', '٧', '٨', '٩');
    // ۳. Arabic Numeric
    $arabic = array('٠', '١', '٢', '٣', '۴', '۵', '۶', '٧', '٨', '٩');
    // ۴. Persian Numeric
    $persian = array('۰', '۱', '۲', '۳', '۴', '۵', '۶', '۷', '۸', '۹');

    $string =  str_replace($persian_decimal, $new_numbers, $string);
    $string =  str_replace($arabic_decimal, $new_numbers, $string);
    $string =  str_replace($arabic, $new_numbers, $string);

    return str_replace($persian, $new_numbers, $string);
}

تبدیل اعداد انگلیسی به فارسی در PHP

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

/**
 * @snippet       Convert English Numbers to Persian Numbers
 * @author        Rasool Vahdati
 * @source        Tidaweb
 */

function tidaweb_convert_english_to_persian_numbers( $string )
{
    $old_numbers = range(0, 9);
    $new_numbers = array('۰', '۱', '۲', '۳', '۴', '۵', '۶', '۷', '۸', '۹');

    return str_replace($old_numbers, $new_numbers, $string);
}

در صورتی که می‌خواهید اعداد انگلیسی را به عربی تبدیل کنید، کافی است متغیر new_numbers را به مقدار زیر تغییر دهید.

$new_numbers = array('٠', '١', '٢', '٣', '۴', '۵', '۶', '٧', '٨', '٩');

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

مهمترین محتواهایی که در وردپرس نیاز به تبدیل اعداد دارند، محتوای نوشته‌ها یا برگه‌ها می‌باشد. شما با استفاده از هوک زیر می‌توانید به راحتی اعداد انگلیسی موجود در سایت وردپرسی خود را فارسی‌سازی کنید.

/**
 * @snippet       Convert English Numbers to Persian Numbers in WordPress
 * @author        Rasool Vahdati
 * @source        Tidaweb
 */

add_filter('the_content', 'tidaweb_convert_numbers_in_wp');
add_filter('the_excerpt', 'tidaweb_convert_numbers_in_wp');

function tidaweb_convert_numbers_in_wp( $text )
{
    $old_numbers = range(0, 9);
    $new_numbers = array('۰', '۱', '۲', '۳', '۴', '۵', '۶', '۷', '۸', '۹');
    
    $text = str_replace($old_numbers, $new_numbers, $text);
    return $text;
}

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

روش‌های مختلفی برای تبدیل ارقام عربی و فارسی به انگلیسی در جاوا اسکریپت و جی کوئری وجود دارند که به چند نمونه از آن‌ها در زیر اشاره می‌کنیم. شما با استفاده از قطعه کد زیر می‌توانید ارقام را به راحتی به انگلیسی تبدیل کنید.

/**
 * @snippet       Convert Persian/Arabic Numbers to English Numbers in JavaScript
 * @author        Mohamed Riyad
 * @source        Github
 */

function conv2EnNum(str){
  return parseFloat(str
    .replace(/[٠١٢٣۴۵۶٧٨٩]/g, function (d) { return d.charCodeAt(0) - 1632; }) // Convert Arabic numbers
    .replace(/[۰۱۲۳۴۵۶۷۸۹]/g, function (d) { return d.charCodeAt(0) - 1776; }) // Convert Persian numbers
  )*۱;
}

// Examples:
alert(conv2EnNum('٠١٢٣۴۵۶٧٨٩')); //  -> 01213456789
alert(conv2EnNum('١٣.۵'));       //  -> 13.5
alert(conv2EnNum('۴۷۶'));        //  -> 476

در صورتی که می‌خواهید به صورت Prototype تبدیل اعداد و ارقام را انجام دهید، باید توابع زیر را تعریف و سپس فراخوانی کنید.

/*
 * English digit to persian
 * Copyright(C) 2009 by Amin Akbari [ http://eAmin.me/ ]
 * Licensed under the MIT Style License [http://www.opensource.org/licenses/mit-license.php]
 *
 */

String.prototype.toFaDigit = function() {
	return this.replace(/\d+/g, function(digit) {
		var ret = '';
		for (var i = 0, len = digit.length; i < len; i++) {
			ret += String.fromCharCode(digit.charCodeAt(i) + 1728);
		}

		return ret;
	});
};
/*
 * Persian digit to English
 * Copyright(C) 2009 by Amin Akbari [ http://eAmin.me/ ]
 * Licensed under the MIT Style License [http://www.opensource.org/licenses/mit-license.php]
 *
 */

String.prototype.toEnDigit = function() {
	return this.replace(/[\u06F0-\u06F9]+/g, function(digit) {
		var ret = '';
		for (var i = 0, len = digit.length; i < len; i++) {
			ret += String.fromCharCode(digit.charCodeAt(i) - 1728);
		}

		return ret;
	});
};
"۰۱۲۳۴۵srh6srh789".toFaDigit(); //  ۰۱۲۳۴۵srh۶srh۷۸۹

"۰۱۲۳۴۵srh۶srh۷۸۹".toEnDigit(); //  012345srh6srh789

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

زبان برنامه‌نویسی پایتون کتابخانه‌ای به نام convert_numbers دارد که از آن می‌توان برای تبدیل اعداد عربی، فارسی، هندی و انگلیسی به یکدیگر استفاده کرد. به منظور نصب آن کافی است در محیط پایتون ابتدا دستور زیر را تایپ کنید تا کتابخانه به طور کامل نصب شود.

pip install convert_numbers

پس از آنکه کتابخانه به طور کامل نصب شد، می‌توانید تابع مورد نظر از این کتابخانه را برای تبدیل اعداد فراخوانی کنید. در زیر نمونه‌های تبدیل ارقام آورده شده است.

import convert_numbers

# From Hindi To Englis
print(convert_numbers.hindi_to_english('٨٧۶۵۴٣٢٣۴۵۶٧٨')) #۸۷۶۵۴۳۲۳۴۵۶۷۸

# From Englis To Hindi
print(convert_numbers.english_to_hindi('12309876523')) ##١٢٣٠٩٨٧۶۵٢٣

# From Hindi To Arabic
print(convert_numbers.hindi_to_arabic('٨٧۶۵۴٣٢٣۴۵۶٧٨')) #۸۷۶۵۴۳۲۳۴۵۶۷۸

# From Arabic To Hindi
print(convert_numbers.arabic_to_hindi('12309876523')) #١٢٣٠٩٨٧۶۵٢٣

# From Arabic To English
print(convert_numbers.arabic_to_english('٢٣۴۵۶٧٨٠٩٨٧۶')) #۲۳۴۵۶۷۸۰۹۸۷۶

# From English To Arabic
print(convert_numbers.english_to_arabic('09876523456')) #٠٩٨٧۶۵٢٣۴۵۶

# From Persian To English
print(convert_numbers.persian_to_english('۵۱۲۳۹۶۰۴۴')) #۵۱۲۳۹۶۰۴۴

# From English To Persian
print(convert_numbers.english_to_persian('512396044')) #۵۱۲۳۹۶۰۴۴

# From Persian To Hindi
print(convert_numbers.persian_to_hindi('۵۱۲۳۹۶۰۴۴')) #۵١٢٣٩۶٠۴۴

# From Hindi To Persian
print(convert_numbers.hindi_to_persian('٢٣۴۵۶٧٨٠٩٨٧۶')) #۲۳۴۵۶۷۸۰۹۸۷۶

ابزار آنلاین تبدیل ارقام فارسی، عربی و انگلیسی به یکدیگر

اگر نیاز دارید تا به صورت موقت تبدیل ارقام را انجام دهید، کافی است از سایت Saitak استفاده کنید. با استفاده از این سایت می‌توانید ارقام فارسی یا عربی را به انگلیسی و بالعکس تبدیل کنید.

افزودن کد ملی به برگه تسویه حساب در ووکامرس
تبدیل اعداد و ارقام فارسی و عریی و انگلیسی در سایت سایتک
ابزار آنلاین تبدیل ارقام و اعداد فارسی و عربی به یکدیگر

در این نوشته نحوه تبدیل ارقام عربی یا فارسی به انگلیسی را یاد گرفتیم. در صورتی که نظر یا سؤالی دارید می‌توانید آن را از طریق دیدگاه‌ها با ما در میان بگذارید.

۴.۷/۵ - (۱۵۲ امتیاز)

7 thoughts on “تبدیل اعداد فارسی و عربی به انگلیسی و برعکس

  1. سالینا سالاری میگوید:

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

    • مدیر سایت میگوید:

      قطعاً همینطوره .
      کاربران با تبدیل توابع بالا به زبان برنامه‌نویسی که کدنویسی میکنن به راحتی میتونن توی اپ‌هاشون ارقام رو بهم تبدیل کنن.

دیدگاهتان را بنویسید

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