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 回答