我有一个简单的表单,需要验证输入的开头和结尾是否不是空格。
在HTML5中,我将这样做:
<input type="text" pattern="^(?!\s|.*\s$).*$">
在新的Angular 2 ngControl指令中,验证模式的正确属性是什么?官方的Beta API在这个问题上仍然缺乏留档。
您可以使用FormBuilder构建表单,因为它可以让您更灵活地配置表单。
export class MyComp {
form: ControlGroup;
constructor(@Inject()fb: FormBuilder) {
this.form = fb.group({
foo: ['', MyValidators.regex(/^(?!\s|.*\s$).*$/)]
});
}
然后在您的模板中:
<input type="text" ngControl="foo" />
<div *ngIf="!form.foo.valid">Please correct foo entry !</div>
您还可以自定义无效的CSS类。
由于regex实际上没有验证器,所以您必须编写自己的验证器。它是一个简单的函数,在输入中接受一个控件,如果有效则返回null,如果无效则返回StringMap。
export class MyValidators {
static regex(pattern: string): Function {
return (control: Control): {[key: string]: any} => {
return control.value.match(pattern) ? null : {pattern: true};
};
}
}
希望它能帮助你。
自版本2.0.0-beta.8 (2016-03-02)以来,Angular现在包括一个Validators.pattern
regex验证器。
查看更改日志
现在,您不需要使用FormBuilder
和所有这些复杂的组件。我在此(Angular 2.0.8-2016年3月3日)提供了更多细节:https://github.com/angular/angular/commit/38cb526
回购的例子:
<input [ngControl]="fullName" pattern="[a-zA-Z ]*">
我测试它,它的工作原理:)-这是我的代码:
<form (ngSubmit)="onSubmit(room)" #roomForm='ngForm' >
...
<input
id='room-capacity'
type="text"
class="form-control"
[(ngModel)]='room.capacity'
ngControl="capacity"
required
pattern="[0-9]+"
#capacity='ngForm'>
验证仅在服务器端进行。如果出现错误,则服务器返回错误代码,例如HTTP 400和响应体中的以下json对象(例如):
this.err = {
"capacity" : "too_small"
"filed_name" : "error_name",
"field2_name" : "other_error_name",
...
}
在html模板中,我使用单独的标记(div/span/small等)
<input [(ngModel)]='room.capacity' ...>
<small *ngIf="err.capacity" ...>{{ translate(err.capacity) }}</small>
如果in'capacity'为错误,则带有msg翻译的标记将可见。这种方法有以下优点:
当然,如果前端需要验证,有时我会破例(例如,retypePassword
注册字段永远不会发送到服务器)。
在中有一个方法,但它看起来不像是一个公共API,所以我宁愿不使用它。创建自定义指令并使用看起来是另一种选择,但基本上需要为每个自定义验证规则创建一个指令,而我不希望这样做。 实际上,在最简单的场景中,将控制器中的某个字段标记为无效(同时保持同步)可能是我完成任务所需要的,但我不知道如何做到这一点。
问题内容: 我有一个带有输入字段和通过添加属性等进行验证设置的表单。但是对于某些领域,我需要做一些额外的验证。我将如何“利用” 控制的验证? 自定义验证可能类似于“如果填写了这3个字段,则此字段是必需的,并且需要以特定方式进行格式化”。 有一个方法,但是看起来不像公共API,所以我宁愿不使用它。创建自定义指令并使用它看起来像另一个选项,但是基本上需要我为每个自定义验证规则创建一个指令,而这是我所不
我如何在下拉选择菜单上添加验证我有代码,我正在处理,但问题是没有工作没有显示错误消息。我想显示错误消息,如果下拉选择值不应该在点击添加到购物车按钮之前选择?
我一直在使用https://github.com/stepstone-tech/android-material-stepper中的stepper库 我已经为步进器创建了碎片和适配器。它运行时没有错误。每个片段都有一些表单元素。 代码如下:
def validate_mobile_number(value):如果不是str(value).isdigit():引发ValidationError(“请输入有效的手机号码”)类ModelA(AbstractUser): mobile=models.CharField(u(“mobile”),unique=True,max_length=10,验证器[validate_mobile_numbe
问题内容: 我正在尝试编写一个向指令添加验证属性的角度指令,但是它似乎没有用。这是我的演示。您将注意到,如果删除第二个输入框中的文本,则“有效”保持为true,但是如果删除第一个输入框中的文本,则为false。 http://plnkr.co/edit/Rr81dGOd2Zvio1cLYW8D?p=preview 这是我的指令: 我猜我只是缺少一些简单的东西。 问题答案: 在表单的编译阶段将读取所