关于angular:字母数字验证不起作用

alpha numeric validation is not working

对于Angular2应用程序,我编写了一个自定义验证器类型脚本类,如下所示,

1
2
3
4
5
6
7
8
9
10
import { FormControl } from '@angular/forms';

export class AlphaNumericValidator {
    static invalidAlphaNumeric(control: FormControl): { [key: string]: boolean } {
        if (control.value.length && !control.value.match(/^[a-z0-9]+$/i)) {
            return { invalidAlphaNumeric: true };
        }
        return null;
    }
}

我将此验证器应用于模型驱动的表单,

1
'name': [this.exercise.name, [Validators.required, AlphaNumericValidator.invalidAlphaNumeric]],

这里是HTML,

1
<label *ngIf="exerciseForm.controls.name.hasError('invalidAlphaNumeric') && (exerciseForm.controls.name.touched || submitted)" class="alert alert-danger validation-message">Name must be alphanumeric</label>

我注意到每当我在输入中键入一个字符时,上面的typescript类代码都会调用,但每次它返回空值时。

关于typescript类有什么问题吗?

谢谢!


使用

1
!/^[a-z0-9]+$/i.test(control.value)

得到一个布尔结果