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

标签 javascript angularjs regex

在 form - name 字段中,我想对其进行验证

  • 应该只允许字母字符
  • 留出空间
  • 允许某些特殊字符 - _\/- 。 ’

我试过了,

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

看起来我错过了什么,因为它不起作用!

最佳答案

让我们看看:

  • 应该只允许字母字符 => [a-zA-Z]
  • 允许空格 => [ ]\s
  • 允许某些特殊字符 - _\/- 。 ' ' => [_\\\/.''-]

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

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

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

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

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

参见 regex demo

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

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

关于javascript - ng-pattern 允许字母和某些特殊字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40905425/

相关文章:

regex - 为什么我的正则表达式在 Go 中总是失败?

javascript - 在已排序的 div 列表中插入新项目

javascript - 一页上的多个幻灯片使第一个不再起作用

json - 加载 Angular UI Bootstrap Datepicker 时将日期字符串解析为 Date 对象

javascript - 在事件触发时识别 HTML 元素

c# - 正则表达式获取字符串的前 6 个和后 4 个字符

javascript - 如何在 Javascript RegEx 中使用 if 条件?

javascript - 在特定位置复制一行

javascript - jQuery 动画延迟问题与步骤的自排队循环

javascript - AngularJS 在数据加载时从 Controller 调用指令函数