2017-04-13 21 views
1

私は、可能な入力のフォーム入力field.An例を検証するために、角NGパターンのための正規表現を書いて苦労していますがAngularJs NGパターン正規表現

有効な入力を下回っています:

@tag 1 
@tag 1, @tag2, @tag -3 
@ta g1, @t ag2 

基本的にはコンマとコンマ空白を許可しますが、タグの間に空白を許してはなりません。

すべての無効な入力と一致するREGEXを作成しましたが、これをng-patternで使用すると正しい検証は行われません。

内蔵のRegex:/((^, @|@\s+)|@*[a-zA-Z0-9]* +[a-zA-Z0-9])/g リンク:https://regex101.com/r/HMVdLD/1

すべてのヘルプははるかに高く評価されます!

+2

なぜ* invalid *入力と一致する正規表現を使用するのですか? –

+0

私は上記の表現を否定しようとしました。それはどちらもうまくいかないようです。 –

+2

見て、['/^@[a-zA-Z0-9]+(?:\s*@[a-zA-Z0-9]+)*$/'](https://regex101.com)/r/REqF0G/1)はすべての有効なものと一致する必要があります。それを 'ng-pattern'属性値(' ng-pattern = "/ pattern /" ')に入れてください。先頭/末尾の空白はどうですか?あなたの入力フィールドにそれを許可しますか? –

答えて

2

は、私はあなたがng-trim="false"を追加し、先頭と末尾の空白を許可しないようにしたい場合はregex demo

を参照してください

ng-pattern="/^@[a-zA-Z0-9]+(?:,\s*@[a-zA-Z0-9]+)*$/" 

のように、有効入力にマッチするパターンを定義することをお勧めします。

パターンは詳細:

  • ^ - 文字列
  • の開始
  • @ - リテラル@シンボル
  • [a-zA-Z0-9]+ - 1+英数字
  • (?:,\s*@[a-zA-Z0-9]+)* - 0+のシーケンス:
    • , - コンマ
    • \s* - 0+空白
    • @[a-zA-Z0-9]+から
  • $同上 - 文字列の末尾。
+1

Wiktorに感謝します。これは完全に動作します! –