携帯電話番号を検証する正規表現があります。 数字にはオプションの接頭辞(+234または234または0)が付いています。国際コードまたはゼロ文字の直後には、サービスプロバイダ固有の識別子のセットがあります。これには、交替文字を使用したオプションも指定されています。電話番号の正規表現検証が期待通りに動作しない
私が持っている正規表現に基づいて、この番号は有効ではありません(12349098766543)。正規表現はそれを有効として返します。コード内には909
が一致しているようです。しかし、テスト文字列の先頭に1
が存在していても、検証に失敗してはいけませんか? ここにある正規表現に何が間違っていますか?
おかげ
function check_number($number) {
if(!preg_match('/[+234|234|0]?(704|702|803|806|703|706|813|816|810|814|903|802|708|808|812|701|902|809|817|818|909|908|805|705|815|807|811|905)\d{7}$/', $number)) {
return 'Invalid Phone Number';
}else{
return 'valid Phone Number';}
}
以下の実行が失敗する必要がありますが、有効として渡されています。
$str = '12349098766543';
echo check_number($str);