شکل‌دهی به فیلدهای تلفن

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

فرض کنید سناریو زیر برای فرمت شماره تلفن‌ها استفاده شود:

 

ورودی

88688868

88688868 031

98-21-44556677

خروجی

8868-8868

88688868 (031)

 4455-6677 (021) 98

 

 

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

 

function formatPhoneNumber()
{
    var phoneNumber = Xrm.Page.getAttribute("telephone1").getValue()
    var fixedNumber = string.replace(/[^0-9]/g, '');

    var output = "";
    switch (fixedNumber.length)
    {
        case 8:
            output = fixedNumber.substring(0, 4) + "-" + fixedNumber.substring(5, 8);
            break;
        case 11:
            output = "(" + fixedNumber.substring(0, 3) + ") " + fixedNumber.substring(4, 7) + "-" + fixedNumber.substring(8, 11);
            break;
        case 12:
            if (fixedNumber.substring(0, 1) == "98")
                output = "(" + fixedNumber.substring(1, 4) + ") " + fixedNumber.substring(5, 8) + " " + fixedNumber.substring(9, 12);
            else
                output = fixedNumber;
            break;
        default:
            // Error No Output
            output = phoneNumber
            break;
    }
    Xrm.Page.getAttribute("telephone1").setValue(output);
}