我对javascript开发完全陌生。我需要的是验证一个移动号码,以启用短信后一段时间。
我发现的是googles libphonenumber:https://code.google.com/p/libphonenumber/
我认为源主干中有一个编译好的javascript文件(闭包编译器),我可以这样做:
function buildAndValidatePhone(phoneNumber, countryCode) {
var strIntlNumber = "invalid";
try {
var phoneUtil = i18n.phonenumbers.PhoneNumberUtil.getInstance();
var regionCode = phoneUtil.getRegionCodeForCountryCode(countryCode);
var number = phoneUtil.parseAndKeepRawInput(phoneNumber, regionCode);
if (phoneUtil.isValidNumber(number)) {
var PNT = i18n.phonenumbers.PhoneNumberType;
var numberType = phoneUtil.getNumberType(number);
if (numberType == PNT.MOBILE) {
var PNF = i18n.phonenumbers.PhoneNumberFormat;
strIntlNumber = phoneUtil.format(number, PNF.E164);
strIntlNumber = strIntlNumber.replace('+','');
}
}
}
catch(ex) {
console.log(ex);
}
return strIntlNumber;
};但是我得到了一个ReferenceError- -要么没有定义i18n,要么没有定义PhoneNumberUtil。如何使用已编译的库?我是遗漏了什么,还是需要用库编译我的代码?
我会感谢您的任何帮助,谢谢提前!
发布于 2013-08-06 14:45:06
我让它起作用了!您需要使用闭包编译器http://closure-compiler.appspot.com/用代码编译libphonenumber库:
// ==ClosureCompiler==
// @output_file_name default.js
// @compilation_level ADVANCED_OPTIMIZATIONS
// @use_closure_library true
// @code_url http://libphonenumber.googlecode.com/svn/trunk/javascript/i18n/phonenumbers/phonemetadata.pb.js
// @code_url http://libphonenumber.googlecode.com/svn/trunk/javascript/i18n/phonenumbers/phonenumber.pb.js
// @code_url http://libphonenumber.googlecode.com/svn/trunk/javascript/i18n/phonenumbers/metadatalite.js
// @code_url http://libphonenumber.googlecode.com/svn/trunk/javascript/i18n/phonenumbers/phonenumberutil.js
// @code_url http://libphonenumber.googlecode.com/svn/trunk/javascript/i18n/phonenumbers/asyoutypeformatter.js
// ==/ClosureCompiler==
function buildAndValidatePhone(phoneNumber, countryCode) {
var strIntlNumber = "invalid";
try {
var phoneUtil = i18n.phonenumbers.PhoneNumberUtil.getInstance();
var regionCode = phoneUtil.getRegionCodeForCountryCode(countryCode);
var number = phoneUtil.parseAndKeepRawInput(phoneNumber, regionCode);
if (phoneUtil.isValidNumber(number)) {
var PNT = i18n.phonenumbers.PhoneNumberType;
var numberType = phoneUtil.getNumberType(number);
if (numberType == PNT.MOBILE) {
var PNF = i18n.phonenumbers.PhoneNumberFormat;
strIntlNumber = phoneUtil.format(number, PNF.E164);
strIntlNumber = strIntlNumber.replace('+','');
}
}
}
catch(ex) {
console.log(ex);
}
return strIntlNumber;
};发布于 2016-02-03 13:04:30
您可以使用API服务评估最新的电话号码详细信息:
curl http://phonenumber.ones-app.com/details?number=004532160398
{
"phonenumber": "4532160398",
"code": "45",
"nsn": "32160398",
"typeid": "FIXED_LINE_OR_MOBILE",
"operator": "Telenor",
"iso3": "DNK",
"iso2": "DK",
"country": "Denmark",
"timezone": ["Europe/Copenhagen"]("Europe/Copenhagen"],),
"is_validnumber": true,
"is_validnumberforRegion": true,
"is_possiblenumber": true
}完整指南:http://blog.ones-app.com/ones-phone-number-api/
https://stackoverflow.com/questions/17928116
复制相似问题