電話番号のグループを検証し、電話番号に + 文字または - 文字を追加できるようにしたいのですが、オプションの電話番号の合計桁数を 10 桁に設定する必要はありません。CakePHP で。どうすればこれを行うことができますか?
有効な入力の例:
0165561125
016 5542512
+016 5515241
+016-5512412
次の正規表現を試すことができます。
\+?\d{3}[- ]?\d{7}
\+?
a を探し、+
オプションにします。
\d{3}
3桁を探します。
[- ]?
a-
またはスペースを探します。これもオプションです。よりも注意してください。前の文字をオプションにします。
\d{7}
残りの 7 桁を探します。
あなたが言及したように、任意の数のスペースを含めることができます。または、電話番号では、次の正規表現を使用できます。
\+?(\d+[ -]?)+
次のことを試すことができます。
^\+?\d{3}[ -]?\d{7}$
これは一致します:
+
冒頭のオプション-
.ただし、「電話番号の合計桁数を 10 桁に設定する必要がない」ということは、桁数を制限したくない (または、どこに何桁を正確に指定する) ことを意味しない場合は、正規表現を次のように変更できます。
^\+?\d+[ -]?\d+$
これは一致します:
+
冒頭のオプション-
.さらに、どこでもスペースとハイフンを受け入れたい場合は、次のようにします。
^(\+|\+ )?\d+([ -]?\d+)*$
これは一致します:
+
(オプションでスペースが続きます)