سلام چگونه شماره تلفن وارد شده را انگلیسی تبدیل کنیم برای شماره های فارسی رمز یکبار مصرف ارسال نمی شود
برای اینکار میتوانید سمت فرانت اینکار را انجام دهید و ورودی را ولیدیت کنید. مثلا داخل تگ 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
سلام خوبی ببین اینکه بیایی عداد رو جایگزین کنی توی هر مرورگری ممکنه جواب نده و اصلا خطا میده در بعضی موارد حاجی بیا این کارو بکن
این کتابخونه رو نصب کن 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);
}
سلام توی فرانت برای اینکه این کار رو براحتی انجام بدی و در عین حال سولوشن ساده ای رو هم بخوایم در نظر بگیرم به این صورت میتونی حرکت بزنی 👌
<!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>
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('۰۱۲۳۴۵۶۷۸۹');
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟