【发布时间】:2018-11-23 15:48:25
【问题描述】:
我正在尝试用正则表达式匹配电话号码:
this.Formareamedia.get('ladacontacto').valueChanges.subscribe((lada) => {
let p;
if (lada.length == 5) {
p = '\\d{3}.\\d{4}';
} else {
p = '\\d{4}.\\d{4}';
}
this.Formareamedia.get("telefonocontacto").setValidators(Validators.pattern(new RegExp(p)));
this.Formareamedia.get("telefonocontacto").updateValueAndValidity();
this.ladacontacto = lada;
let telefono = this.Formareamedia.get('telefonocontacto').value;
console.log(new RegExp(p).lastIndex);
if (telefono && telefono.match(new RegExp(p))) {
return null;
} else {
return {
telefono: false
}
}
});
如果我输入 lada 输入 (XX) 和 Telefono 输入 XXXX-XXXX,则函数返回 true(正确结果),但如果我输入 lada 输入 (XXX) 和 Telefono 输入XXXX-XXXX 正在返回 true 一个错误的结果,它应该返回 false。我的功能有什么问题?
【问题讨论】:
标签: javascript regex angular typescript match