💻 آخرین فرصت یادگیری برنامه‌نویسی با آفر ویژه قبل از افزایش قیمت در ۵ آذر ماه (🎁 به همراه یک هدیه ارزشمند )
۰ ثانیه
۰ دقیقه
۰ ساعت
۲ Mehrzad Tajkarimi
فارسی کردن و سه رقم سه رقم جدا کردن همزمان ورودی اینپوتها در برنامه
جامعه پی اچ پی ایجاد شده در ۳۱ فروردین ۱۴۰۳

سلام وقت بخیر
میخوام ورودی‌های کاربر در زمان keyup فارسی بشه و سه رقم سه رقم جدا بشه 
راه‌های مختلف رو امتحان کردم 
میتونم سه رقم سه رقم جدا کنم و فارسی هم بکنم ولی جفتش باهم چون ساختار کارکتر اعداد عوض میشه ظاهرا جواب نمیده 
 

درود 

 

به نظرم برای انجام چنین کاری میتونید از جاوا اسکریپت کمک بگیرید خیلی بهتره برای فارسی کردن میتونید یه چنین کدی رو در root layout پروژه تون قرار بدید 

<script>
    document.addEventListener('input', function (e) {
        if (e.target.tagName.toLowerCase() === 'input') {
            e.target.value=e.target.value.replace(/[۰-۹]/g,function (d) {
                return '۰۱۲۳۴۵۶۷۸۹'.indexOf(d);
            });
        }
    });
</script>

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

محمدرسول اصغری ۰۱ اردیبهشت ۱۴۰۳، ۱۵:۵۰

از این کئ هم میتونید استفاده کنید:

function separateNumbersAndPersianize(input) {
    let englishInput = input.replace(/[۰-۹]/g, d => String.fromCharCode(d.charCodeAt(0) - 1728));
    let numericValue = englishInput.replace(/,/g, '');
    if (isNaN(parseFloat(numericValue))) {
        return input;
    }
    let separatedEnglishNumber = numericValue.replace(/\B(?=(\d{3})+(?!\d))/g, ',');
    let persianNumber = separatedEnglishNumber.replace(/\d/g, digit => String.fromCharCode(digit.charCodeAt(0) + 1728));
    return persianNumber;
}
const inputElement = document.getElementById('myInput');
inputElement.addEventListener('keyup', () => {
    const separatedAndPersianNumber = separateNumbersAndPersianize(inputElement.value);
    inputElement.value = separatedAndPersianNumber;
});
محسن موحد ۰۱ اردیبهشت ۱۴۰۳، ۱۸:۵۴