2017-12-14 16 views
2

私はフィールド内に1 ++の空白を入力できないようにするため、私のフォームに何らかのバリデーションを作成する必要があります。だから、彼はスペースを入力することができますが、スペースだけではありません。これは現時点での検証方法です:空白文字の検証ですか?角度4

this.valForm = this.fb.group({ 
     'firstName': [null, Validators.compose([Validators.required, Validators.maxLength(50)])], 
     'lastName': [null, Validators.compose([Validators.required, Validators.maxLength(50)])] 
}); 

このタイプの検証を作成するために使用するパターンはわかりません。ありがとう。あなただけの

userInputString.trim() !== '' 

バリをチェックするカスタムバリデータを作成することができます

+0

ユーザーは右に空白を1つだけ入力できますか? –

+0

@ArunKumareshユーザーは空白を入力することができますが、フィールド内のスペースだけではないため、 'Example Valu e'にすることはできますが、 ''、 ''などのようにすることはできません。 –

答えて

0

は、いずれかのブールや約束などの制御を取り、(それが有効であるかどうかを返す関数よりもはるかにではありません/観測可能)。

詳しくは、角度2+のカスタムバリデーターの例をご覧ください。

https://blog.thoughtram.io/angular/2016/03/14/custom-validators-in-angular-2.html

+0

この.indexOf( '')フィールド内のスペースを確認しますか? –

+0

ああ申し訳ありませんが、私の答えを調整します –

1

あなたがチェーン^((?!\s{2,}).)*$Scriptular上でそれをテストする場合は、

'firstName': [null, [Validators.required, Validators.maxLength(50), Validators.pattern(/^((?!\s{2,}).)*$/)]] 

を行うことができ、あなたは

Hello darling // Matches 
Hello darling // Doesn't match 

これは正規表現が何をすべきものではないことがわかります。彼らはそれでうまくいきません。正規表現は、逆ではなく、文字列内での式の出現を見つけるはずです。しかし、それでも、彼らはそれを行うことができます。

詳しくは、ネガティブルックアラウンドと呼ばれています。

関連する問題