【发布时间】:2019-09-01 10:38:55
【问题描述】:
我有一个使用反应形式的模型,并不断给我 regex.test is not a function 的错误。
型号如下:
import { date, email, maxDate, maxLength, minDate, minLength, pattern, prop, required } from "@rxweb/reactive-form-validators";
export class UserInfo {
@required()
public firstName: string;
@required()
public lastName: string;
@pattern({expression: {pattern: /(^\+?[\d\W-/]{4,16}$)/ } })
@minLength({value: 4})
public phoneNumber: string;
}
还有错误
ERROR TypeError: regex.test is not a function
at Function.isValid (reactive-form-validators.js:719)
at reactive-form-validators.js:3418
at forms.js:1155
at Array.map (<anonymous>)
at _executeValidators (forms.js:1151)
at RxFormControl.validator (forms.js:1096)
at RxFormControl._runValidator (forms.js:3438)
at RxFormControl.updateValueAndValidity (forms.js:3399)
at new FormControl (forms.js:3843)
at new RxFormControl (reactive-form-validators.js:2017)
在我正在 ngOnInit() 上执行的组件上发生:
this.baseForm = this.formBuilder.formGroup(this.user) as RxFormGroup;
更奇怪的是,只有当我实际拥有 phoneNumber 上的数据时才会发生这种情况。如果我的 phoneNumber 为空,它可以完美运行。
我什至测试了以下内容:
this.user.phoneNumber = "";
this.baseForm = this.formBuilder.formGroup(this.user) as RxFormGroup;
这行得通。对我来说更奇怪的是,我在stackblitz 上做了一个小例子,即使有数据,它也可以毫无问题地工作。
【问题讨论】:
-
仅供参考:始终将文字
-放在字符类的开头或结尾:[\d\W\/-]。 -
@WiktorStribiżew 我也试过了,但我遇到了同样的问题
-
是的,因为主要问题在代码中。
-
可能你的答案是here
-
@WiktorStribiżew 我创建了一个新实例,手动映射,什么都没有
标签: regex angular typescript angular-reactive-forms