用于验证邮政编码或城市的 JavaScript 正则表达式
Posted
技术标签:
【中文标题】用于验证邮政编码或城市的 JavaScript 正则表达式【英文标题】:JavaScript regex to validate postal code or City 【发布时间】: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芝加哥
【问题讨论】:
【参考方案1】:您可以在正则表达式中使用管道,其作用类似于 OR。
示例 sn-p:
function validateCityOrPostalCode(value)
return /^([0-9]5|[a-zA-Z][a-zA-Z ]0,49)$/.test(value);
var values = ['12345','New York','1234','',' ','Boston33','333Chicago'];
values.forEach(
function(value)
console.log(value +":"+ validateCityOrPostalCode(value));
);
【讨论】:
以上是关于用于验证邮政编码或城市的 JavaScript 正则表达式的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 JavaScript 和 AJAX 根据邮政编码自动填充城市和州?
JavaScript Appcelerator:简单的邮政编码城市搜索器