Javascript 用于验证邮政编码和电话号码的正则表达式
我正在创建一个带有警告元素的表单。所有这些都很好,但需要更好地定义我的模式Javascript 用于验证邮政编码和电话号码的正则表达式,javascript,regex,Javascript,Regex,我正在创建一个带有警告元素的表单。所有这些都很好,但需要更好地定义我的模式 $("#postcode").inputNotes( { warning: { pattern: /^[0-9]+$/, type: 'note', text: 'Only numbers, please ...',
$("#postcode").inputNotes(
{
warning: {
pattern: /^[0-9]+$/,
type: 'note',
text: 'Only numbers, please ...',
inversedBehavior: true
}
}
);
$("#phone").inputNotes(
{
warning: {
pattern: /^[0-9]+$/,
type: 'note',
text: 'Only numbers, no spaces please ...',
inversedBehavior: true
}
}
);
好的,对于邮政编码警告,我希望模式预期为4个数字
对于电话警告,我希望模式预期为10个数字
感谢您的帮助。请尝试使用
{num}
,而不是使用+
修饰符,其中num
是您想要的上一个atom的实例数。更新:
对于6位或10位数字:
模式:/^[0-9]{10}|[0-9]{6}$/,
对于四位邮政编码:模式:/^[0-9]{4}$/,
对于10位电话号码:
(如果电话号码不能以0开头)
模式:/^[1-9][0-9]{9}$/,
(如果电话号码可以以0开头)
pattern://^[0-9]{10}$/,
对于4位邮政编码,您可以使用/^\d{4}$/
对于10位邮政编码,您可以使用/^\d{10}$/
请记住,有些人会在电话号码中键入空格、括号等。在使用
/[^\d]+/g
进行验证之前,应首先去除所有非数字。以下是澳大利亚邮政编码的规则:
法案:0200-0299和2600-2639
新南威尔士州:1000-1999、2000-2599和2640-2914
新界:0900-0999及0800-0899
QLD:9000-9999和4000-4999
SA:5000-5999
助教:7800-7999和7000-7499
维也纳国际中心:8000-8999和3000-3999
WA:6800-6999和6000-6799
正则表达式:^(0[289][0-9]{2}|([1345689][0-9]{3}|(2[0-8][0-9]{2}|(290[0-9])|(291[0-4])|(7[0-4][0-9]{2}|(7[8-9][0-9]{2}$
通行证:0200 | | | | 7312 | | | 2415
失败:0300 | | | 7612 | | | 2915澳大利亚邮政在2019年大大简化了规则。 您现在只需要考虑范围:
0200-0299、0800-0999和1000-9999 因此,验证澳大利亚邮政编码的正则表达式为:
^(0[289][0-9]{2})|([1-9][0-9]{3})$
所有这些答案都假设您将文本字段限制为4个字符,例如(12345)是有效的,要限制长度,请使用以下命令
^(0[289][0-9]{2})$|^([1-9][0-9]{3})$
为了节省人们的时间,这里有一个如何在jquery中使用的示例
$("#address-postal-code").once().on('blur', function (e) {
var myRegEx = new RegExp('^(0[289][0-9]{2})|([1-9][0-9]{3})$');
var ele = $(this);
if (!myRegEx.test(ele.val())) {
console.log('no good');
}
else {
console.log('good');
}
})
为什么电话号码不能以
0
开头呢?非常感谢,先生Brilliant@alex:未看到任何以0开头的10位电话号码。以便笺形式更新帖子,以防号码确实存在。手机号码以0开头,我们要求用户键入以01、02开头的州前缀(澳大利亚)etc@Cybernate如果I和@422来自(澳大利亚),手机号码以0
开头(除非使用国家代码前缀,例如+61
).欢呼声在我的旁注中加入了这一点,作为我的回答:)Thnaks,那么你的正则表达式和@cybernate有什么区别呢?现在我真的confused@422其实不是很多,我只是用\d
简写[0-9]
字符类,我的允许一个前导0
。Gottya将在其他正则表达式上使用它,很好。我第一次玩这个…更新了当前邮政编码范围的正则表达式(截至2019年):^(0[289][0-9]{2})|([123456789][0-9]{3})$