1

需要字符串的正则表达式,例如:

  1. 可以有字母、数字
  2. 忽略特殊字符,例如: < > { } [ ] # ~ ^/\"
  3. 不能有纯数字
  4. 最大大小为 20 个字符

有效答案 a) “hello world 123 -” b) “123 hello - world” c) “- hello 123 world”

无效答案 a) "123456" b) "123456" c) "abc>>>" c) "abc123>>>" d) ">>>>" 我想出的最接近的是:

^([A-Za-z0-9 '\-!\£\$:;%&amp;\*\(\)_=\+,.\?@\n\r\t]{1,20}$

但是“不能有纯数字”的第 3 点变得无效。

任何的想法?

4

1 回答 1

1

您可以使用这个基于前瞻的正则表达式:

^(?![0-9]+$)(?!.*?[<>{}\[\]#~^\/"]).{1,20}$

^ - Line start
(?![0-9]+$) - Not just numbers
(?!.*?[<>{}\[\]#~^\/"]) - Doesn't have these special characters
.{1,20} - 1 to 20 characters
$ - Line end
于 2013-11-14T12:19:43.817 回答