辣 angularjs 正则表达式

spicy angularjs regex

我一直在研究 angularJs ng-pattern 的正则表达式问题,它需要:

  1. 不能为空
  2. 最少 1 个字符,最多 32 个字符
  3. 不允许仅使用空格
  4. 可接受的特殊字符(!@#$%&*-+=[]:;',.?)
  5. 答案不区分大小写
  6. 不允许 &# 的组合
  7. 应删除答案开头和结尾的空格。

这是我的解决方案,涵盖了除第 6 项以外的所有要求:

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

你们有什么想法吗?

您可以使用

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

参见regex demo

详情

  • ^ - 字符串开头
  • (?!\s*$) - 不允许从字符串开始到结束有 0+ 个空格
  • (?!.*&#) - 在任何 0+ 个字符后不允许 &#
  • [a-zA-Z0-9!@#$%&*+=[\]:;',.?\s-]{1,32} - 1 到 32 个允许的字符:ASCII 数字、字母、空格和一些 punctuation/symbols
  • $ - 字符串结尾。