فیلدهای شماره تلفن در موجودیتهای شخص، شرکت و سرنخ دارای فرمت خاصی نیستند، این در حالی است که در بسیاری از شرکتها نیاز است که کد شهرستان، شماره داخلی یا مواردی از این قبیل شکل خاصی داشته باشند. استفاده از جاوااسکریپت برای این موارد ممکن است بخشی از مشکلات را حل نماید، ولی قطعاً همه مشکلات حل نخواهند شد.
فرض کنید سناریو زیر برای فرمت شماره تلفنها استفاده شود:
ورودی
|
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);
}