Angular 什么是“;forbiddenNameValidator(新的RegExp(this.forbiddenName,';i';))(控件)和#x201D;做
我是一名java开发人员,也是Angular的新生婴儿。我对Typescript语法有点困惑 我正在阅读这篇文章,特别是“自定义验证器”和这段代码Angular 什么是“;forbiddenNameValidator(新的RegExp(this.forbiddenName,';i';))(控件)和#x201D;做,angular,typescript,Angular,Typescript,我是一名java开发人员,也是Angular的新生婴儿。我对Typescript语法有点困惑 我正在阅读这篇文章,特别是“自定义验证器”和这段代码 @Directive({ selector: '[appForbiddenName]', providers: [{provide: NG_VALIDATORS, useExisting: ForbiddenValidatorDirective, multi: true}] }) export class ForbiddenValidator
@Directive({
selector: '[appForbiddenName]',
providers: [{provide: NG_VALIDATORS, useExisting: ForbiddenValidatorDirective, multi: true}]
})
export class ForbiddenValidatorDirective implements Validator {
@Input('appForbiddenName') forbiddenName: string;
validate(control: AbstractControl): {[key: string]: any} | null {
return this.forbiddenName ? forbiddenNameValidator(new RegExp(this.forbiddenName, 'i'))(control)
: null;
}
}
验证函数的定义是:
export function forbiddenNameValidator(nameRe: RegExp): ValidatorFn {
return (control: AbstractControl): {[key: string]: any} | null => {
const forbidden = nameRe.test(control.value);
return forbidden ? {forbiddenName: {value: control.value}} : null;
};
}
forbiddenNameValidator(new RegExp(this.forbiddenName,'i'))(control)的翻译是什么?如果值
this.forbiddenName
为falsy(false,null,undefined,0,false),则返回null,否则,它将使用给定的regex
调用函数validator
。RegExp
参数中的i
用于使regex不区分大小写,这对我来说很奇怪,但你可以这样做
export function f1(param1) {
return (param2) => {
return (param3) => {
console.log(param1, param2, param3);
};
};
}
f1(1)(2)(3);
然后像这样调用函数
export function f1(param1) {
return (param2) => {
return (param3) => {
console.log(param1, param2, param3);
};
};
}
f1(1)(2)(3);
“翻译”是什么意思?它使用正则表达式调用函数,正则表达式由两个参数构成,然后使用控件调用第一个函数返回的函数。