使用 JavaScript Reg for Angular5 应用程序验证英国邮政编码
Validating UK PostCode with JavaScript Reg for Angular5 app
我正在研究 Angular 5 Reactive Form validation 并尝试使用自定义验证功能验证 UK PostCode,该功能正在工作和测试,以防万一在邮政编码第二部分末尾提供额外的字母或数字值,它验证为真,例如 NW10 5NW 是正确的,但如果我键入任何类似 NW10 5NWRRRRRRRRRRRRRRRR 的内容也是 return true,这是不正确的。
我已经尝试在 https://regexr.com/ 上遵循常规表达式并且它 return 正确响应,不确定为什么在 javaScript 中表现不一样???
function postCodeValidator(control: FormControl)
{
let givenPostCode = control.value;
let UKPostCodePattern = /^([Gg][Ii][Rr] 0[Aa]{2})|((([A-Za-z][0-9]{1,2})|(([A-Za-z][A-Ha-hJ-Yj-y][0-9]{1,2})|(([A-Za-z][0-9][A-Za-z])|([A-Za-z][A-Ha-hJ-Yj-y][0-9]?[A-Za-z]))))\s?[0-9][A-Za-z]{2})/;
var isUKPostCodeValid = UKPostCodePattern.test(givenPostCode);
console.log("postcode validity ",isUKPostCodeValid, " for ", givenPostCode);
if(!isUKPostCodeValid)
{
return {
postCode:{
required:"UK Valid PostCode",
provided: givenPostCode
}
}
}
return null;
}
尝试使用以下正则表达式
^(([Gg][Ii][Rr] 0[Aa]{2})|((([A-Za-z][0-9]{1,2})|(([A-Za-z][A-Ha-hJ-Yj-y][0-9]{1,2})|(([A-Za-z][0-9][A-Za-z])|([A-Za-z][A-Ha-hJ-Yj-y][0-9]?[A-Za-z]))))\s?[0-9][A-Za-z]{2}))$
我正在研究 Angular 5 Reactive Form validation 并尝试使用自定义验证功能验证 UK PostCode,该功能正在工作和测试,以防万一在邮政编码第二部分末尾提供额外的字母或数字值,它验证为真,例如 NW10 5NW 是正确的,但如果我键入任何类似 NW10 5NWRRRRRRRRRRRRRRRR 的内容也是 return true,这是不正确的。
我已经尝试在 https://regexr.com/ 上遵循常规表达式并且它 return 正确响应,不确定为什么在 javaScript 中表现不一样???
function postCodeValidator(control: FormControl)
{
let givenPostCode = control.value;
let UKPostCodePattern = /^([Gg][Ii][Rr] 0[Aa]{2})|((([A-Za-z][0-9]{1,2})|(([A-Za-z][A-Ha-hJ-Yj-y][0-9]{1,2})|(([A-Za-z][0-9][A-Za-z])|([A-Za-z][A-Ha-hJ-Yj-y][0-9]?[A-Za-z]))))\s?[0-9][A-Za-z]{2})/;
var isUKPostCodeValid = UKPostCodePattern.test(givenPostCode);
console.log("postcode validity ",isUKPostCodeValid, " for ", givenPostCode);
if(!isUKPostCodeValid)
{
return {
postCode:{
required:"UK Valid PostCode",
provided: givenPostCode
}
}
}
return null;
}
尝试使用以下正则表达式
^(([Gg][Ii][Rr] 0[Aa]{2})|((([A-Za-z][0-9]{1,2})|(([A-Za-z][A-Ha-hJ-Yj-y][0-9]{1,2})|(([A-Za-z][0-9][A-Za-z])|([A-Za-z][A-Ha-hJ-Yj-y][0-9]?[A-Za-z]))))\s?[0-9][A-Za-z]{2}))$