質問: 現在、電話番号の入力制御で以下のように記述していて、数字と+のみを許可するようにしているのですが、以下の記述に+が先頭以外についていた場合もif文に入るようにしたいのです。 どのように制御を掛けたらよいでしょうか?お力を貸していただけると助かります。 ``` if(preg_match('/[^+0-9]/', $tel)){ //数字、+以外が使われている } ```
回答: やりたいことから考えると、先頭が 0 もしくは + で、その後ろが全て数字で構成された文字列、になるはずです(0以外から始まる特殊番号(119とか)はこの際考えません)。 ですから正規表現を変えて、 ``` if (!preg_match('/^[0+][0-9]+$/', $tel)) { // 電話番号じゃない } ``` とでもすればよいんじゃないでしょうか。