ng-pattern允许alpha和某些特殊字符

时间:2016-12-01 08:03:46

标签: javascript angularjs regex

在表单 - 名称字段中,我想对

进行验证
  • 应仅允许Alpha字符
  • 允许空格
  • 允许使用某些特殊字符 - _ \ / - . ’

我试过了,

 ng-pattern="/^[a-z]+[_+\+/+-+.+’][a-z]*$/"

看起来我错过了一些不起作用的东西!

2 个答案:

答案 0 :(得分:5)

让我们看看:

  • 应仅允许Alpha字符 => [a-zA-Z]
  • 允许空格 => [ ]\s
  • 允许使用特定字符 - _ \ / - . ’ ' => [_\\\/.’'-]

因此,结合所有这些,模式将如下所示:

ng-pattern="/^[a-zA-Z _\\\/.’'-]+$/"

这匹配允许集合中的一个或多个(+)字符。

要禁止前导/尾随空格,请使用

ng-pattern="/^[a-zA-Z_\\\/.’'-]+(?: +[A-Za-z_\\\/.’'-]+)*$/" ng-trim="false"

请参阅regex demo

ng-trim="false"将阻止修改发送到正则表达式引擎的输入。新的正则表达式将匹配:

  • ^ - 字符串开头
  • [a-zA-Z_\\\/.’'-]+ - 除空格外的1个或多个字母或允许的符号
  • (?: +[A-Za-z_\\\/.’'-]+)* - 零个或多个序列:
    • + - (或,\s+) - 1个或多个空格(空格)
    • [A-Za-z_\\\/.’'-]+ - 见上文
  • $ - 字符串结束。

答案 1 :(得分:1)

/^([a-z _\/.'-])+$/i会这样做。如果您想要任何空格字符而不仅仅是空格,请使用/(^[a-z_\/.'-]|\s)+$/i