【发布时间】:2017-08-08 14:31:40
【问题描述】:
我想对名为“城市或邮政编码”的输入字段进行客户端验证,我对用户输入有单独的验证。我首先区分输入是数字还是字符串,然后有单独的块来验证它们。我想知道是否有一种优雅的方式,或者换句话说,一个正则表达式来验证输入
validateCityOrPostalCode(value) {
const isnum = /^\d+$/.test(value);
if (isnum) {
const patternForZipCode = RegExp('^[0-9]{5}$');
const result = patternForZipCode.test(value);
return result;
}
const onlyLetters = RegExp('^[a-zA-Z ]$').test(value);
if (onlyLetters) {
const patternForCity = RegExp('^([a-zA-Z -]{1,50})$');
const validCityName = patternForCity.test(value);
return validCityName;
}
}
我打算做什么
validateCityOrPostalCode(value) {
const patternForCityOrPostalCode = '<The regex that I am looking for >'
const result = patternForCityOrPostalCode.test(value);
return result;
}
有效案例: 5 位邮政编码,如 10016、12345、44444 等(5 位数字) 'New York'、'Boston'、'Chicago'、xx、xxxx 等城市(1 到 50 个字符)
无效案例: 1234 123 12 1 空字符串 波士顿33 333芝加哥
【问题讨论】:
标签: javascript regex validation