0

電話番号のグループを検証し、電話番号に + 文字または - 文字を追加できるようにしたいのですが、オプションの電話番号の合計桁数を 10 桁に設定する必要はありません。CakePHP で。どうすればこれを行うことができますか?

有効な入力の例:

0165561125

016 5542512

+016 5515241

+016-5512412

4

2 に答える 2

0

次の正規表現を試すことができます。

\+?\d{3}[- ]?\d{7}


\+?a を探し、+オプションにします。
\d{3}3桁を探します。
[- ]?a-またはスペースを探します。これもオプションです。よりも注意してください。前の文字をオプションにします。
\d{7}残りの 7 桁を探します。



あなたが言及したように、任意の数のスペースを含めることができます。または、電話番号では、次の正規表現を使用できます。

\+?(\d+[ -]?)+
于 2013-03-25T07:00:43.760 に答える
0

次のことを試すことができます。

^\+?\d{3}[ -]?\d{7}$

これは一致します:

  • +冒頭のオプション
  • 正確に 3 桁の数字が続く
  • 1 つのオプションのスペースまたは-.
  • さらに正確に 7 桁が続きます

ただし、「電話番号の合計桁数を 10 桁に設定する必要がない」ということは、桁数を制限したくない (または、どこに何桁を正確に指定する) ことを意味しない場合は、正規表現を次のように変更できます。

^\+?\d+[ -]?\d+$

これは一致します:

  • +冒頭のオプション
  • 少なくとも 1 つの数字が続く
  • 1 つのオプションのスペースまたは-.
  • 少なくとももう 1 桁の数字が続く

さらに、どこでもスペースとハイフンを受け入れたい場合は、次のようにします。

^(\+|\+ )?\d+([ -]?\d+)*$

これは一致します:

  • 先頭のオプション+(オプションでスペースが続きます)
  • 少なくとも 1 桁
  • 0 個以上の (スペースまたはハイフンの後に少なくとも 1 つの数字が続く) のグループ
于 2013-03-25T07:01:30.010 に答える