jQuery 验证澳大利亚电话号码
Posted
技术标签:
【中文标题】jQuery 验证澳大利亚电话号码【英文标题】:jQuery Validating Australian Phone Numbers 【发布时间】:2015-07-13 12:45:10 【问题描述】:我正在尝试从输入框中获取值,验证并格式化数字,然后更新输入字段。
我希望它验证所有澳大利亚电话号码(手机和固定电话) 将手机号码格式化为 04XXXXXXXX 和座机号码 (0X) XXXX XXXX
var phone_number = $("#phone").val();
//validate mobile number
var formatted = phone_number.replace(/(\d3)(\d3)(\d4)/, '$1-$2-$3');
//replace number
$("#phone").val(formatted);
任何帮助都会很棒:)
【问题讨论】:
嘿尼克只是想知道你是否设法找到解决这个问题的方法?我希望能够为此找到一个基于 jQuery 的解决方案。 我最终实现了我在下面发布的功能......就像下面所说的那样,不是最佳的,但不值得花更多时间 【参考方案1】:您可以使用您建议的相同正则表达式/替换逻辑。
html
Mobile:<input id = "mobile" type = "tel" maxlength=8></input>
Landline:<input id = "landline" type = "tel" maxlength=10></input>
jquery
$("#mobile").blur(function()
var mobile_ele = $("#mobile");
var mobileNum = mobile_ele.val();
var formattedNum = mobileNum.replace(/(\d2)(\d3)(\d3)/g,"04$1 $2 $3");
mobile_ele.val(formattedNum);
);
$("#landline").blur(function()
var landline_ele = $("#landline");
var landlineNum = mobile_ele.val();
var formattedNum = landlineNum.replace(/(\d2)(\d4)(\d4)/g,"($1) $2 $3");
mobile_ele.val(formattedNum);
);
演示:https://jsfiddle.net/7c0d418t/
【讨论】:
【参考方案2】:我想出了 1 个解决方案,但不确定它的优化程度,但有人可能想详细说明一下。
function validatePhoneNumber(phone_number)
var formatted = "";
//remove all non-digits
phone_number = phone_number.replace(/\D/g,'');
//if number starts with 61, replace 61 with 0
if (phone_number.match(/^61/))
phone_number = "0"+phone_number.slice(2);
if (phone_number.match(/^04/))
if (phone_number.length === 10)
var formatted = phone_number.replace(/(\d4)(\d3)(\d3)/g,"$1 $2 $3");
else
alert('Invalid phone number');
else if (phone_number.match(/^02|03|07|08/))
if (phone_number.length === 10)
var formatted = phone_number.replace(/(\d2)(\d4)(\d4)/g,"($1) $2 $3");
else
alert('Invalid phone number');
else if (phone_number.length === 8)
alert('Please use Area Code for landline numbers');
else
alert('Invalid phone number');
//update
$("#phone").val(formatted);
演示:https://jsfiddle.net/kb4u536a/
【讨论】:
【参考方案3】:您可以在此处找到 200 多个国家/地区的电话验证码:https://github.com/googlei18n/libphonenumber
【讨论】:
以上是关于jQuery 验证澳大利亚电话号码的主要内容,如果未能解决你的问题,请参考以下文章