文本字段的自定义验证

时间:2015-05-26 09:18:21

标签: angularjs

我要求在单行文本字段中具有以下条件:

  1. 第一个字符应为大写字母。
  2. 接下来的两个字符应为字母数字,但任何字母都应为大写字母。
  3. 鉴于以下代码,我如何验证这些条件?

    <input
        type="text"
        maxlength="3"
        ng-model="name"
        ng-change="name = name.toUpperCase();"
    />
    

2 个答案:

答案 0 :(得分:2)

您可以使用ngPattern属性强制使用正确的模式。

您无法使用ngChange自动将用户输入的小写字母转换为大写,因为如果输入无效,模型为undefined,但您可以使用{{3相反。

<input
    type="text"
    ng-model="name"
    ng-pattern="'[A-Z][A-Z0-9]{2}'"
/>

如果您使用的是$parsers版本,请改用模式^[A-Z][A-Z0-9]{2}$

如果您使用的是between 1.3.0-beta.12 and 1.3.2版本,请改用模式/^[A-Z][A-Z0-9]{2}$/

答案 1 :(得分:0)

您可以使用ng-pattern设置正则表达式和

<input    type="text"    ng-model="name"
ng-pattern="'^[A-Z][A-Z\d]{2}'"
ng-change="name = name.toUppercase()" />

在这里,您可以测试或创建正则表达式Fiddle