如何允许具有空格和字符限制的输入使用正则表达式为15

时间:2016-10-14 15:09:30

标签: regex

对于我的一个项目,我只想验证具有以下标准的输入:

  • 输入可能包含空格,但不是所有空格
  • 输入必须至少包含一个或多个字符
  • 空格不是强制性的
  • 输入必须允许任何键盘字符

例如:

  1. space14chars
  2. #$ space12chars
  3. &安培; ^ 11charsspace
  4. 我没有尝试写正则表达式,因为我是这个的新手。

    ^[\x00-\x7E\s]{0,15}$
    

    但上面的表达式允许所有空格,限制为15个字符 - 它不满足第一个标准。

2 个答案:

答案 0 :(得分:3)

这是你正在寻找的吗?

^(?!\s+$)[\x00-\x7E]{0,14}$

答案 1 :(得分:1)

您可以使用

^(?!\s+$)[\x00-\x7E]{1,15}$

匹配:

“输入可能有空格,但不是所有空格”条件符合在字符串开始锚点之后立即放置的负lookahead (?!\s+$)(仅运行一次检查)

{1,15} limiting quantifier可轻松满足“输入必须至少包含一个或多个字符”:下限设置为1,因此必须至少有1个焦炭。上限设置为15,您可以根据不断变化的要求进行调整。

由于使用了与其他类型的字符匹配的单个通用字符类,因此满足“空格不是必需的”条件。

初始表达式已满足“输入必须允许任何键盘字符”条件,因为[\x00-\x7E]与ASCII字符范围匹配。