【问题标题】:Regex to validate that first letter of every word is capital in angular js正则表达式验证每个单词的第一个字母在 Angular js 中是大写的
【发布时间】:2015-04-27 11:13:03
【问题描述】:

我正在使用 angularjs。我想对我的姓名字段使用验证。我是正则表达式的初学者。 我希望每个单词的第一个字母都应该是大写的。 例如 Naveen Kumar 应该是有效的 Naveen kumar 无效。

我正在使用 ng-pattern 来验证名称字段。我应该使用什么正则表达式?感谢您的帮助。

【问题讨论】:

  • 您能展示一下您的尝试吗?
  • 我尝试使用 (\s|^[A-Z])([a-z0-9-_]+).....但它没有按我想要的方式工作
  • 测试这并不总是一个好主意,几个带有粒子的名称可能无效:“de la Porte”、“de la Rue”。在我看来,您应该只测试您的字段是否有允许的字符,如果需要,在记录之前对其进行格式化。

标签: regex angularjs validation pattern-matching ng-pattern


【解决方案1】:

您可以将此正则表达式与ng-pattern 一起使用:

ng-pattern="/^\b[A-Z][a-z]*(\s*\b[A-Z][a-z]*\b)*$/"

Demo

此正则表达式仅匹配标题大小写中包含单词(不包含数字或下划线)的条目。因此,Avinash Raj1Avinash_Raj Raj 将无法通过验证。

示例代码:

<label>Single word:
    <input type="text" name="input" ng-model="example.text"
           ng-pattern="/^\b[A-Z][a-z]*(\s*\b[A-Z][a-z]*\b)*$/" required ng-trim="false">
</label>

【讨论】:

    【解决方案2】:

    你可以使用

    ^\b(?:[A-Z]\w+\b(?:\s*)?)+$
    

    Demo and Explanation

    【讨论】:

    • 谢谢...这正是我需要的...就像一个魅力! :D
    【解决方案3】:

    ^(\b[A-Z]\w*\s*)+$ 怎么样? 见https://regex101.com/r/qP5xG5/1

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-30
      • 2014-08-20
      • 1970-01-01
      • 2017-04-10
      相关资源
      最近更新 更多