4

私の Angularjs アプリケーションでは、次の条件でフォームを検証するための 2 つのパターンの正規表現が必要です。

パターン 1 :

入力ボックスは、スペースなしで英数字を受け入れる必要があり、ユーザーが~!@#$-_文字列内の任意の場所で文字を使用できるようにする必要があります(%, &, ^ etc)。先頭/末尾の空白も許可しないでください。

例:

 ab@4_w    :  valid
 sd!tye123  : valid
 sd%tye123  :  Invalid
 sd*tye123  :  Invalid

$scope.pattern1 = [\w~!@#\$-]+

パターン 2: スペースを含まず、(_) を含む他の文字を含まない英数字のみを許可する必要があります。先頭/末尾の空白も許可しないでください。

例:

  a4hgg5  : Valid
  a4_6hy   : Invalid
  a@yb    : invalid

$scope.pattern2 = [\w]+

$scope.pattern1上記の要件を$scope.pattern2 満たすように変更する必要があります。

4

2 に答える 2

1

先頭/末尾の空白を許可しないでください。

ng-trim="false"どちらの場合も、要素に属性を追加しますinput

入力ボックスはスペースなしの英数字を受け入れる必要があり、ユーザーが~!@#$-_文字列内の任意の場所で文字を使用できるよう%にする必要が&あります^

あなたが持っているパターンは正しいですが、エスケープする必要のない文字をエスケープすることはお勧めしません:

^[\w~!@#$-]+$

\w一致する場所[a-zA-Z0-9_]

注: パターンを文字列として渡す場合は、^$アンカーを追加せず、バックスラッシュを 2 つ追加します: "[\\w~!@#$-]+"

スペースを含まない英数字のみを許可し、( _) を含む他の文字は許可しないでください。

はるかに簡単です: ^[a-zA-Z]+$. 上記と同じアンカーに関するコメントが適用されます。

于 2016-11-14T09:24:44.860 に答える