راکت
حل شده

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

4 پاسخ

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

ثبت پرسش جدید

پاسخ‌ها

4
افشار محمودیان
افشار محمودیان
@afsharmahmoodian

تخصص: برنامه نویس

برای اینکار میتوانید سمت فرانت اینکار را انجام دهید و ورودی را ولیدیت کنید. مثلا داخل تگ 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
@Arshiamohammadei

تخصص: وب و هوش مصنوعی

سلام خوبی ببین اینکه بیایی عداد رو جایگزین کنی توی هر مرورگری ممکنه جواب نده و اصلا خطا میده در بعضی موارد حاجی بیا این کارو بکن
این کتابخونه رو نصب کن 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);
}

شاید پاسخ شما همین‌جا باشد

مهدی نظری
مهدی نظری
@mahdi.nazari

تخصص: توسعه دهنده Front End

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


<!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>
حمیدرضا صفایی
حمیدرضا صفایی
@hamidrezasfy

تخصص: توسعه دهنده یونیتی و لاراول

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('۰۱۲۳۴۵۶۷۸۹');

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

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