2017-09-21 11 views
0

角4を使用して携帯電話番号を検証したいだけで、10桁までの数字以外の文字は受け付けないでください。以下は角4携帯番号の検証

は、KeyPressイベントは、しかし、Firefoxのために動作しません。クロムのために働い

<input type="text" formControlName="mobileNo" minlength=10 maxlength=10> 
+2

を受け入れ避けることができますこれまでに試しました! –

+0

私はこれをフォームグループ> 'mobileNo'の中に入れました:[null、Validators.compose([Validators.required、Validators.pattern(mobileNoPatternMatch)])]、パターンはconst mobileNoPatternMatch =/^ [0-9] {10,10} $/ –

+0

誤植を修正し、より具体的にするための質問をするためのタグを追加しました。 – Sung

答えて

3
<input type="text" (keypress)="keyPress($event)" minlength=10 maxlength=10> 


    keyPress(event: any) { 
    const pattern = /[0-9\+\-\ ]/; 

    let inputChar = String.fromCharCode(event.charCode); 
    if (event.keyCode != 8 && !pattern.test(inputChar)) { 
     event.preventDefault(); 
    } 
    } 
0

、私のコードです。バックスペースや矢印キーのようなクロムキーのキーは、デフォルトでは無視され、機能は実行されませんが、Firefoxでは実行されますが、これらは機能しません。私はif (event.charCode !== 0)

_keyPress(event: any) { 
    if (event.charCode !== 0) { 
     const pattern = /[0-9\+\-\ ]/; 
     const inputChar = String.fromCharCode(event.charCode); 

     if (!pattern.test(inputChar)) { 
     // invalid character, prevent input 
     event.preventDefault(); 
     } 
    } 
    } 
1

小さな行を追加しただけのバリデータパターン

mobileNumber: new FormControl(null, [Validators.pattern("[0-9]{0-10}")]) 

を追加し、あなたが持っているものを含まれている場合それが参考になるタイプは数になりますと、それは任意の文字

関連する問題