ورود

View Full Version : نرمال سازی phone number



aryana_b
جمعه 19 تیر 1394, 00:00 صبح
سلام دوستان
من میخوام تو برنامم شماره های Contact رو در DB ذخیره کنم و موقعی که تماس برقرار میشه با شماره در حال تماس مقایسش بکنم
شماره هایی که ما تو contact ذخیره میکنیم اغلب به صورت 021 یا 0912 ذخیره میکنیم ولی وقتی تماس گرفته میشه شماره ورودی 9821+ یا 98912+ هستن دنبال دستور یا تابعی میگردم که بتونم شماره هارو به صورت 98+ (کد کشورها) در DB ذخیره کنم یا شماره های دریافتی رو به شکل 021 اینا تبدیل کنم

خیلی ممنون میشم کمکم کنید :لبخندساده:

Nevercom
جمعه 19 تیر 1394, 03:51 صبح
public static String normalizePhoneNumber(String phoneNumber) { // remove any non-digit character
String number = phoneNumber.replaceAll("\\D", "");
// extract last 10 digits and append a zero to the start
number = "0" + number.substring(number.length() - 10, number.length());
return number;
}

این کد اول از همه کاراکترهای غیر عددی رو حذف می کنه، بعد ۱۰ رقم آخر رو میگیره و یه صفر به ابتدا اضافه می کنه، نتیجه شماره ای مثل ۰۹۱۷۱۲۳۴۵۶۷ هست.
قبل از اینکه شماره رو بفرستید به این متد چک کنید که حداقل ۱۰ کاراکتر باشه، درغیر اینصورت شماره معتبر نیست.

aryana_b
جمعه 19 تیر 1394, 11:45 صبح
ممنون
ولی این روش که 10 رقم اخر رو میگیره برای شماره های توی ایران کاربرد داره روشی وجود نداره که همه کشورهارو ساپورت کنه ؟
مثلا میتونم از روشی که خود سیستم عامل استفاده می کنه استفاده کنم ؟

Nevercom
جمعه 19 تیر 1394, 13:45 عصر
این کلاس یه سری متد برای کار با شماره تلفن داره: http://developer.android.com/reference/android/telephony/PhoneNumberUtils.html (http://developer.android.com/reference/android/telephony/PhoneNumberUtils.html#formatNumber(java.lang.Strin g, java.lang.String))

aryana_b
جمعه 19 تیر 1394, 18:09 عصر
ممنون مشکلم حل شد