我有一张表,其中包含从数据库中查询的一堆电话号码。我想在电话号码中插入连字符,而不是:“0000000000”,用户将看到:“000-000-0000”。在正则表达式上不是很好,但这是我到目前为止所尝试的:
$('.views-field-phone').each(function(){
$(this).insertAfter(/(.{3})/g,"-1-")
$(this).insertAfter(/(.{7})/g,"-1-")
});
答案 0 :(得分:6)
可能不是最佳但是......
string = string.substring(0,3) + '-' + string.substring(3,6) + '-' + string.substring(6,10);
或您的情况......
$('.views-field-phone').each(function(){
var string = $(this).html();
$(this).html(string.substring(0,3) + '-' + string.substring(3,6) + '-' + string.substring(6,10))
});
答案 1 :(得分:2)
这是一个简单的功能,我用来格式化电话号码,没有什么特别的,但完成工作。
function formatPhoneNumber(phoneNumber) {
var rawPhoneNumber = phoneNumber.replace("(", "").replace(")", "").replace(/-/g, "").replace(/ /g, "");
if (isNaN(rawPhoneNumber)) {
return null;
}
if (rawPhoneNumber.length == 10) {
return "(" + rawPhoneNumber.substring(0, 3) + ") " + rawPhoneNumber.substring(3, 6) + "-" + rawPhoneNumber.substring(6, 10);
}
if (rawPhoneNumber.length == 11) {
return rawPhoneNumber.substring(0, 1) + " (" + rawPhoneNumber.substring(1, 4) + ") " + rawPhoneNumber.substring(4, 7) + "-" + rawPhoneNumber.substring(7, 11);
}
}
测试案例:
$("body").append("<h1>" + formatPhoneNumber("1234567890") + "</h1>");
$("body").append("<h1>" + formatPhoneNumber("11234567890") + "</h1>");
$("body").append("<h1>" + formatPhoneNumber("11267890") + "</h1>");
输出:
<h1>(123) 456-7890</h1>
<h1>1 (123) 456-7890</h1>
<h1>undefined</h1>
jsfiddle上的示例。
答案 2 :(得分:0)
为什么不能只使用javascript substr()
?如果数字是统一的,你可以像这样分开:3-3-4字符。