RegEx验证仅适用于空白区域;应该接受单词/字符之间的空格

时间:2018-01-16 21:53:36

标签: javascript regex

我正在为以下要求编写用于UI验证的reg ex:

  1. 它应包含字母和/或数字。
  2. 它可以包含“_”(唯一可接受的特殊字符)。
  3. 字符之间的“空格”是可以接受的。
  4. 没有空格(不允许使用空格)。
  5. 这是我的注册表:

    Validators.pattern('^[A-Za-z0-9? ,_-]+$')
    

    现在除了'#4'之外,其他一切都运转良好。它只接受白色空间;而根据要求,只允许在字符之间使用空格。

1 个答案:

答案 0 :(得分:1)

正则表达式变得更重,但你可以这样做:

Validators.pattern('^[A-Za-z0-9?,_-](\s?[A-Za-z0-9?,_-]+)*$')

这可以确保:

  • 第一个字符是有效字符,而不是空格
  • 字符串要么在这里结束,要么
    • 包含[optional whitespace][at least one valid non-whitespace character]
    • 的任何序列

这样匹配:

  • “a a”
  • “一”
  • “AA”

而这些不是:

  • “”(不确定您是否希望这个匹配)
  • “a”
  • “a”
  • “a a a”

注意:我使用了您的模式,该模式允许?,-未包含在您的第二个要求中。