Hướng dẫn php remove country code from phone number - php xóa mã quốc gia khỏi số điện thoại

Dưới đây là mã tôi hiện đang sử dụng để định dạng số điện thoại cho dữ liệu. Tuy nhiên, iOS đang đặt +1 hoặc 1 [mã quốc gia] trước khi nó tự động phát triển. Làm cách nào để xóa 1 trước số điện thoại?

So...

+12223334444 nên là 2223334444

12223334444 nên là 2223334444

preg_replace['/\D/', '', [$phone]];

Hỏi ngày 9 tháng 8 năm 2018 lúc 8:24Aug 9, 2018 at 8:24

6

Sử dụng thay thế Regex sau:

Nếu định dạng của bạn là: +12223334444

$country_code = '+1';
$phone_no = '+12223334444';

echo preg_replace['/^\+?1|\|1|\D/', '', [$phone_no]];

Đầu ra sẽ: 2223334444

Nếu định dạng của bạn là:

$country_code = '+1';
$phone_no = '+12223334444';

echo preg_replace['/^\+?1|\|1|\D/', '', [$phone_no]];
0

$country_code = '1';
$phone_no = '2223334444';

echo preg_replace['/^\+?1|\|1|\D/', '', [$phone_no]];

Đầu ra sẽ: 2223334444

Nếu định dạng của bạn là:

$country_code = '+1';
$phone_no = '+12223334444';

echo preg_replace['/^\+?1|\|1|\D/', '', [$phone_no]];
0Aug 9, 2018 at 8:37

7

Đã trả lời ngày 9 tháng 8 năm 2018 lúc 8:37

\+[?:998|996|995|994|993|992|977|976|975|974|973|972|971|970|968|967|966|965|964|963|962|961|960|886|880|856|855|853|852|850|692|691|690|689|688|687|686|685|683|682|681|680|679|678|677|676|675|674|673|672|670|599|598|597|595|593|592|591|590|509|508|507|506|505|504|503|502|501|500|423|421|420|389|387|386|385|383|382|381|380|379|378|377|376|375|374|373|372|371|370|359|358|357|356|355|354|353|352|351|350|299|298|297|291|290|269|268|267|266|265|264|263|262|261|260|258|257|256|255|254|253|252|251|250|249|248|246|245|244|243|242|241|240|239|238|237|236|235|234|233|232|231|230|229|228|227|226|225|224|223|222|221|220|218|216|213|212|211|98|95|94|93|92|91|90|86|84|82|81|66|65|64|63|62|61|60|58|57|56|55|54|53|52|51|49|48|47|46|45|44\D?1624|44\D?1534|44\D?1481|44|43|41|40|39|36|34|33|32|31|30|27|20|7|1\D?939|1\D?876|1\D?869|1\D?868|1\D?849|1\D?829|1\D?809|1\D?787|1\D?784|1\D?767|1\D?758|1\D?721|1\D?684|1\D?671|1\D?670|1\D?664|1\D?649|1\D?473|1\D?441|1\D?345|1\D?340|1\D?284|1\D?268|1\D?264|1\D?246|1\D?242|1]\D?

Điều này có thể là quá mức cần thiết, nhưng ở đây chúng tôi đi:

Thử nghiệm

Để phù hợp với bất kỳ tiền tố nào và vì một số quốc gia có thể chia sẻ một phần tiền tố giống nhau [ví dụ 1 và 1-721], bạn thêm tất cả các khả năng thực hiện vào Regex theo thứ tự và kích thước giảm dần.

Regex dựa trên danh sách này.Aug 9, 2018 at 9:16

Đã trả lời ngày 9 tháng 8 năm 2018 lúc 9:16Julio

Juliojulio1 gold badge12 silver badges39 bronze badges

4

 if [substr[$request->mobile_num, 0, 2] == "98"]
        $mobile_num = str_replace['98', '0', $request->mobile_num];
 elseif [substr[$request->mobile_num, 0, 3] == "+98"]
        $mobile_num = str_replace['+98', '0', $request->mobile_num];
 else
     $mobile_num = $request->mobile_num;

5.0281 Huy hiệu vàng12 Huy hiệu bạc39 Huy hiệu đồngNov 5, 2019 at 7:42

Đã trả lời ngày 5 tháng 11 năm 2019 lúc 7:42Sadeq

Sadeqsadeq1 gold badge3 silver badges13 bronze badges

1701 Huy hiệu vàng3 Huy hiệu bạc13 Huy hiệu đồng

Nó làm sạch số điện thoại & dải [,], -, + trả về chỉ 10 chữ số cuối cùng số điện thoại số

Ví dụ:

1234567890 => +11234567890
1234567890 => :+112:34567890
1234567890 => Phone :+1-123-456-7890
1234567890 => Phone :+1-[123]-[456]-[7890]
1234567890 => +1-[123]-[456]-[7890]
1234567890 => +1-123-456-7890

Sample test code:
$dirty_phone = ["+11234567890", ":+112:34567890", "Phone :+1-123-456-7890",  "Home :[+1]-[123]-[456]-[7890]", "+1-[123]-[456]-[7890]", "+1-123-456-7890"];

foreach [$dirty_phone as $key => $phone_no] {
    $cleaned_phone = clean_phone_number[$phone_no];
    echo "{$cleaned_phone} => {$phone_no}
"; } function clean_phone_number[$phone_no]{ return substr[ preg_replace['/^\+?1|\|1|\D/', '', $phone_no], -10]; }
May 29, 2020 at 16:01

Đã trả lời ngày 29 tháng 5 năm 2020 lúc 16:01


Tôi đã làm việc trên cơ sở tín dụng USSD. USSD nắm bắt số điện thoại bằng mã quốc gia và tôi muốn gửi thông báo SMS qua API SMS số lượng lớn khác chỉ yêu cầu số điện thoại di động mà không cần mã quốc gia. Tôi đã sử dụng mã dưới đây và nó hoạt động tốt.

USSD bắt giữ +254712450866 Các định dạng mã trên đến 0712450866

Đối với tôi nó hoạt động.Apr 17 at 12:58

Bài Viết Liên Quan

Chủ Đề