国家代码后面的0怎么去掉
Posted
技术标签:
【中文标题】国家代码后面的0怎么去掉【英文标题】:How to remove 0 after country code 【发布时间】:2016-05-27 05:07:45 【问题描述】:我在表单上使用 jQuery 插件 (http://www.jqueryscript.net/form/jQuery-International-Telephone-Input-With-Flags-Dial-Codes.html) 来提交日期。 但有时人们会错误地在国家代码后添加 0。
例如,他们提交的不是 +97150975xxxx,而是 +971050975xxxx。 有什么办法可以去掉国家代码后面的零?关于模糊
【问题讨论】:
你不能得到国家代码并从字符串中做子串然后从剩下的一位中获取第一个数字来检查它是否为0吗? 看起来国家代码的长度可以在 2 到 4 个整数之间 (en.wikipedia.org/wiki/List_of_country_calling_codes)。你怎么知道它是一个 3-4 个字符长的国家代码与一个 2 个字符长的意外 0? Debin 是的,我可以提取国家代码 var extension = $("#demo").intlTelInput("getExtension");和数字 var intlNumber = $("#demo").intlTelInput("getNumber");和jsfiddle.net/kCpNQ/304 会做剩下的......对吗? 是的,然后提取它并获取剩余字符串的第一个数字.. 【参考方案1】:编辑:我对代码的看法是正确的。这可能会奏效(我自己还没有测试过):
var code = $("#demo").intlTelInput("getExtension");
var number = $("#demo").intlTelInput("getNumber");
var clean_number = code + number;
早期:我宁愿从源字符串中提取国家代码(前 4 个字符),然后提取数字(最后 9 个字符)并从中提取干净的数字:
var source = '+971050975xxxx';
var code = source.substring(0, 4);
var number = source.substring(source.length - 9);
var clean_number = code + number;
【讨论】:
是的,有些国家代码比其他代码长。开曼岛 +1345 jqueryscript.net/demo/…【参考方案2】:试试这个,用修改后的泛型函数更新
<input id="demo" placeholder="e.g. +1 702 123 4567" type="tel" onblur="SetValue(this.value)">
和 onblur i 的 javascript 函数,
function SetValue(e)
var selectedCountry = $("div[class='selected-flag']")[1].children[0].getAttribute("class").split(' ')[1];
var countryCode = $("li[data-country-code='" + selectedCountry + "']").attr("data-dial-code");
var prefixData = "+"+countryCode;
var inputData = document.getElementById("demo").value;
var tempData = inputData.replace(prefixData, '');
if (tempData.indexOf(' ') == 0)
tempData = tempData.substring(1, tempData.length);
if (tempData.indexOf('0') == 0)
tempData = tempData.substring(1, tempData.length);
document.getElementById("demo").value = prefixData +" "+ tempData;
【讨论】:
以上是关于国家代码后面的0怎么去掉的主要内容,如果未能解决你的问题,请参考以下文章