1

angularJs ng-pattern の正規表現の問題に取り組んでいます。これには次のものが必要です。

  1. 空白にすることはできません
  2. 最小 1 文字、最大 32 文字
  3. スペースのみは使用できません
  4. 使用できる特殊文字 (!@#$%&*-+=[]:;',.? )
  5. 答えは大文字と小文字を区別しません
  6. の組み合わせは許可されていません
  7. 回答の最初と最後にあるスペースは削除する必要があります。

これは、6番目を除くすべての要件をカバーする私のソリューションです:

([^a-zA-Z0-9!@#$%& *+=[\]:;',.?-])|(^\s*$)

何かアイデアはありますか?

4

1 に答える 1

1

あなたは使用することができます

/^(?!\s*$)(?!.*&#)[a-zA-Z0-9!@#$%&*+=[\]:;',.?\s-]{1,32}$/

正規表現のデモを参照してください。

詳細

  • ^- 文字列の開始
  • (?!\s*$)- 文字列の先頭から末尾まで 0+ 空白は許可されません
  • (?!.*&#)- &#0+ 文字の後には許可されません
  • [a-zA-Z0-9!@#$%&*+=[\]:;',.?\s-]{1,32}- 1 ~ 32 の許容文字: ASCII 数字、文字、空白、句読点/記号
  • $- 文字列の終わり。
于 2018-04-29T23:49:06.193 に答える