ابوالفضل زارعی
10 ماه پیش توسط ابوالفضل زارعی مطرح شد
4 پاسخ

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

سلام چگونه شماره تلفن وارد شده را انگلیسی تبدیل کنیم برای شماره های فارسی رمز یکبار مصرف ارسال نمی شود


ثبت پرسش جدید
افشار محمودیان
تخصص : برنامه نویس
@afsharmahmoodian 10 ماه پیش مطرح شد
3

برای اینکار میتوانید سمت فرانت اینکار را انجام دهید و ورودی را ولیدیت کنید. مثلا داخل تگ html اتون از pattern استفاده کنید.

pattern="[0-9]+"

این ولیدیت کردن سمت بک اند هم باید چک کنید.
یا اینکه در بک اند خودتان اعداد را به اعداد انگلیسی تبدیل کنید.
مثلا از تابع زیر استفاده کنید.

    public static function convertNumbersToEN($string)
    {
        $persian = ['۰', '۱', '۲', '۳', '۴', '۵', '۶', '۷', '۸', '۹'];
        $arabic = ['٩', '٨', '٧', '٦', '٥', '٤', '٣', '٢', '١', '٠'];
        $num = range(0, 9);
        $convertedPersianNums = str_replace($persian, $num, $string);
        return str_replace($arabic, $num, $convertedPersianNums);
    }

سمت بک هم مجددا میتونید ولیدیت کنید داده تون رو . مثلا از regex ها استفاده کنید

/^09[0-9]{11}$/

توی جاوا اسکریپت هم میتونید از ولیدیشن رو داشته باشید. مثلا :

/^09[0-9]{11}$/.test('0910555۵۵۵۵') ---> false

Arshiamohammadei
تخصص : وب و هوش مصنوعی
@Arshiamohammadei 10 ماه پیش مطرح شد
2

سلام خوبی ببین اینکه بیایی عداد رو جایگزین کنی توی هر مرورگری ممکنه جواب نده و اصلا خطا میده در بعضی موارد حاجی بیا این کارو بکن
این کتابخونه رو نصب کن google-libphonenumber

npm install --save google-libphonenumber

const PNF = require('google-libphonenumber').PhoneNumberFormat;
const phoneUtil = require('google-libphonenumber').PhoneNumberUtil.getInstance();

// شماره تلفن فارسی (بدون کد کشوری)
const phoneNumberString = '9123456789';

try {
  // تبدیل شماره تلفن به شیء PhoneNumber
  const phoneNumber = phoneUtil.parse(phoneNumberString, 'IR');

  // تبدیل به فرمت بین‌المللی
  const formattedPhoneNumber = phoneUtil.format(phoneNumber, PNF.INTERNATIONAL);

  console.log(formattedPhoneNumber);
} catch (error) {
  console.error('خطا در تبدیل شماره تلفن:', error);
}

مهدی نظری
تخصص : توسعه دهنده Front End
@mahdi.nazari 10 ماه پیش آپدیت شد
1

سلام توی فرانت برای اینکه این کار رو براحتی انجام بدی و در عین حال سولوشن ساده ای رو هم بخوایم در نظر بگیرم به این صورت میتونی حرکت بزنی 👌


<!DOCTYPE html>
<html>
<body>

<h2>تبدیل شماره تلفن فارسی به انگلیسی</h2>

<input type="text" id="phone" placeholder="شماره تلفن فارسی">
<button onclick="convertToEnglish()">تبدیل</button>

<script>
function convertToEnglish() {
  var persianNumber = document.getElementById("phone").value;

  // تبدیل اعداد فارسی به انگلیسی
  var englishNumber = persianNumber
    .replace(/۰/g, '0')
    .replace(/۱/g, '1')
    .replace(/۲/g, '2')
    .replace(/۳/g, '3')
    .replace(/۴/g, '4')
    .replace(/۵/g, '5')
    .replace(/۶/g, '6')
    .replace(/۷/g, '7')
    .replace(/۸/g, '8')
    .replace(/۹/g, '9');

  // نمایش شماره تلفن به فرمت انگلیسی
  alert("شماره تلفن انگلیسی: " + englishNumber);
}
</script>

</body>
</html>

حمیدرضا صفایی
تخصص : توسعه دهنده یونیتی و لاراول
@hamidreza.safayee 10 ماه پیش مطرح شد
1
function convert($input)
{
    $fa_num = array('۰', '۱', '۲', '۳', '۴', '۵', '۶', '۷', '۸', '۹');
    $en_num = array('0', '1', '2', '3', '4', '5', '6', '7', '8', '9');
    return str_replace($fa_num, $en_num, (string) $input);
}

echo convert('۰۱۲۳۴۵۶۷۸۹');

برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام