簡體   English   中英

preg_replace 電話號碼消毒國際號碼

[英]preg_replace phone number sanitizing for international numbers

我有一段 PHP 代碼,我們用來從 PHP 中的電話號碼中去除空格和非數字,這很好用,它也從電話號碼中刪除了前導 0:

substr(preg_replace('/[^0+a-zA-Z0-9]+/', '', $phone), 1);

但是,在某些情況下,前導數字不是 0,而是 1,我們不希望它們被剝離。

因此,如果數字是 0312345678,則需要去除前導 0 如果數字是 1800123456,則不應從數字中去除前導 1

如何調整替換以不去除所有第一個數字,並且僅在其為 0 時將其去除,同時保留剩余的 preg_replace 函數,因為當前使用 substr 去除第一個數字,而不管它是什么?

您可以使用

$phone = preg_replace('/^0|[^a-zA-Z0-9+]+/', '', $phone)

正則表達式將刪除一個0在串與開始^0替代,和[^a-zA-Z0-9+]+將除去比ASCII字母,數字等的任何一個或多個字符和+在其他地方細繩。

請參閱正則表達式演示

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM