2017-09-21 35 views
1

私はの形式で電話番号を検証しようとしています。私は正常にすべての特殊文字の電話番号を取り除くことができましたが、電話番号が+15555555555で入力されても、数字にはまだ数字の先頭に「1」が含まれています。 +1と特殊文字の両方を削除する方法はありますか?特殊文字を取り除き、電話番号から+1

私の現在の正規表現はpreg_replace('/^1|\D/', "", +15555555555);です。

助けていただけたら幸いです!

+0

'str_replace( '+ 1'、 ''、$番号);' ---が、上他の手で+ {countrycode} {number}形式は、国際電気通信連合の標準化勧告 - - [E.164](https://en.wikipedia.org/wiki/E.164)標準ですので、おそらくそれを保つでしょうか? –

+0

さて、私は、完全性のために数字を10桁にしたかったのです。私はそれをやってしまうかもしれません。フィードバックをお寄せいただきありがとうございます! – ch0chi

答えて

3

このために正規表現は必要ありません。

str_replace('+1', '', $string) 

となります。しかし、あなたの正規表現が現在失敗した理由を説明するために、あなたの文字列は1で始まらず、+1で始まるので、^1は一致しません。

現在の使用のデモ:可能な正規表現溶液のhttps://regex101.com/r/kwwp1r/1/

デモ:https://regex101.com/r/kwwp1r/2/

^\+1 
+0

素晴らしいです、ありがとう!誰かが15555555555を入力したとします.1つの正規表現、またはstr_replaceメソッドを使用して、数字の先頭に「+1」と「1」の両方を照合することができます。 – ch0chi

+0

はい、 '^ \ +?1'は' + 'をオプションにします。電話番号が「1」で始まらないというルールですか? – chris85

+0

@ ch0chi ...しかし、それはすでに 'preg_replace'を必要とします。 –

1

ちょうどそれ

$phone_num = "+15555555555"; 

$phone_num = preg_replace('/\+1/','',$phone_num); 

echo $phone_num; 

か、str_replace( '+ 1'、 ''、$のphone_num)、のいずれかまたはを使用することができますから+1を交換してください。私はいつもpreg_replaceを習慣から使います。

関連する問題