1

私は正規表現の経験があまりなく、javascript を使用して電話番号を検証する必要があります。区切り文字で複数の電話番号を受け入れることを許可する必要があるテキストボックスがあり';'、電話番号に許可できる文字は次のとおりです

  1. 数字
  2. '+'
  3. 「-」

JavaScriptと正規表現/正規表現を使用してこれを達成する方法について誰かが私を助けてくれますか?

例:

+91-9743574891;+1-570-456-2233;+66-12324576

私は次のことを試しました:

^[0-9-+;]+$

これが正しいかどうかはわかりません。

4

4 に答える 4

1

-間違った場所に配置したため、機能してregexいません。

これを試してください(正規表現ですが、わずかに変更されています):

^[0-9+;-]+$

また

^[-0-9+;]+$

文字クラス内にハイフンを含めるには、次のいずれかを実行する必要があります。

  1. ハイフンをエスケープして\-
  2. 文字クラスの先頭または末尾にハイフンを配置します。

ハイフンは、文字の範囲を指定するために使用されます。したがって、正規表現エンジンは、 to 、to (10 進数のコード ポイント[char ] から[char ] を持つすべての文字で、失敗する) と[0-9-+;]+の間の文字のいずれかに一致することを理解します。099+57943+;

于 2012-11-21T13:38:39.530 に答える
0

これはどう^([0-9\-\+]{5,15};?)+$

説明:

^          #Match the start of the line
[0-9\-\+]  #Allow any digit or a +/- (escaped)
{5,15}     #Length restriction of between 5 and 15 (change as needed)
;?         #An optional semicolon
+          #Pattern can be repeat once or more
$          #Until the end of the line

指定された制限のみがより厳しくなる可能性があります。ここで動作することを確認してください。

于 2012-11-21T13:39:51.533 に答える
0

もう少し制限を加えるには、次の正規表現を使用できます。

/^\+[0-9]+(-[0-9]+)+(;\+[0-9]+(-[0-9]+)+)*$/

一致するもの:

+91-9743574891
+1-570-456-2233;+66-12324576

一致しないもの:

91-9743574891
+15704562233
6612324576
于 2012-11-21T13:40:46.600 に答える
0

あなたの正規表現はあなたが許可したものと一致しますが、もう少し制限があります:

^\+?[0-9-]+(?:;\+?[0-9-]+)*$

ここでRegexrを参照してください

つまり、オプションの「+」の後に一連の数字とダッシュが続く一致を意味します。次に、セミコロンで始まる任意の数の追加の数字が存在する可能性があり、最初の数字と同じパターンになります。

于 2012-11-21T13:41:51.847 に答える