2016-10-20 13 views
0

Editted:私は正規表現を初めて使用しています。私は0または1で始まらないはずの10桁の携帯電話番号の正規表現が必要で、10桁すべてで同じ番号を繰り返すことはできません。 情報の不足を申し訳ありません。この問題のために助けてください。Regex for "すべての数字は携帯電話番号と同じであってはなりません"

htmlコードを見つけてください。

<div class="col-md-2"> 
            <label>Mobile Phone</label> 
            <input id="" type="text" ui-mask="(999) 999-9999" name="mobilePhone" 
              class="form-control" 
              ng-model="patientIn.addressList[0].phoneNumbers['mobile']" 
              ng-change="setPhoneNumber('mobile')" 
              ui-mask-placeholder-char="space" 
              model-view-value="true"/> 
            <p ng-show="(frmPatientEdit.$submitted && frmPatientEdit.mobilePhone.$invalid) || (frmPatientEdit.mobilePhone.$invalid && frmPatientEdit.mobilePhone.$touched)" 
             class="error">Mobile Phone is Invalid.</p> 
+0

を繰り返している場合私の携帯電話番号は、配列を含む>チェック - hiphen

\1{4}ため>チェック - >チェックキャプチャは3回(後方参照)

-を繰り返している場合6363、あなたはそれが有効ではないと言っていますか?その件に関して、私の数字は11桁を含んでいます... –

+1

@NiettheDarkAbsol OPは、有効数字として "0000000000"を入力できないことを意味します。また、異なる国では携帯電話の番号の長さが異なります;) – Jordumus

+0

私は正規表現の専門家ではありませんが、このサイトは正規表現の作成に役立ちますhttp://regexr.com/私は正規表現がその答えだとは思わない逐次的に動作するので、11223344も無効と検出される可能性があります。 –

答えて

1

この正規表現を使用して、すべての数字が同じかどうかを確認できます。

(\d)はキャプチャグループ、\1キャプチャグループに対する一致{9}マッチ\1 9倍である、あなたが合うようにその数字を編集することができます。これは10個の数字が同じかどうかを教えてくれます。あなたのケースで

(\d)\1{9} 

JS

text.match(/(\d)\1{9}/g); 

http://regexr.com/3efqd

1

、携帯電話番号の形式である(9999)999-9999 したがって、正規表現は

/\((\d)\1{3}\) \1{3}-\1{4}/.test("(9999) 999-9999") 
"true" 

/\((\d)\1{3}\) \1{3}-\1{4}/.test("(9999) 929-9999") 
"false" 

なければなりませんここで、正規表現の分割された説明は

です

\( - >一致した(あなたの文字列に

(\d)は - >最初の整数と一致し、我々は、後でそれを後方参照することができるように(それをキャプチャ)

\1 - >は、1枚目の撮影の要素をピックアップ

{3} - >スペース

- >チェックキャプチャが3回

(space)を繰り返している場合

\1{3} - 捕獲は4回

+0

申し訳ありません再度私の問題を更新する必要があります。しかし問題は、0または1で始めるべきではない10桁の携帯電話番号の正規表現が必要なことです。同じ数字を10桁すべてに対して繰り返すことはできません。私のせい。このソリューションを手に入れることができれば、それは良いことです。 –

関連する問題