jqGrid tableToGrid格式化电话号码列
问题描述:
我需要找出一种方法来获取我的jQuery的tableToGrid调用某些列的格式化我的几个单元格。我知道你可以在colModel中放置一个formater,并为你设置格式。我想知道是否有标准的电话号码格式化程序,还是我会被迫写一个?感谢您的输入。jqGrid tableToGrid格式化电话号码列
答
我不知道你想如何格式化你的电话号码,但这里有一些我用于项目的代码。如果您取消注释行权,你可以切换(xxx)xxx-xxxx
和xxx-xxx-xxxx
之间
colModel: [
{ name: 'phonenumber', index: 'phonenumber', width: 60, align: "center", formatter: formatPhoneNumber}
]
// converts number to (xxx)xxx-xxxx or xxx-xxx-xxxx
function formatPhoneNumber(cellvalue, options, rowObject) {
var re = /\D/;
// test for this format: (xxx)xxx-xxxx
var re2 = /^\({1}\d{3}\)\d{3}-\d{4}/;
// test for this format: xxx-xxx-xxxx
//var re2 = /^\d{3}-\d{3}-\d{4}/;
var num = cellvalue;
if (num === null){
num = "";
}
var newNum = num;
if (num != "" && re2.test(num) != true) {
if (num != "") {
while (re.test(num)) {
num = num.replace(re, "");
}
}
if (num.length == 10) {
// for format (xxx)xxx-xxxx
newNum = '(' + num.substring(0, 3) + ')' + num.substring(3, 6) + '-' + num.substring(6, 10);
// for format xxx-xxx-xxxx
// newNum = num.substring(0,3) + '-' + num.substring(3,6) + '-' + num.substring(6,10);
}
}
return newNum;
}
答
我认为这是最好的办法...
colModel: [
{ name: 'phonenumber', index: 'phonenumber', width: 60, align: "center", formatter: formatPhoneNumber}
]
function formatPhoneNumber(cellvalue, options, rowObject) {
var re = new RegExp("([0-9])([0-9]{3})([0-9]{3})([0-9]{3,6})", "g");
cellvalue=cellvalue.replace(re, "+$1($2)-$3-$4");
return cellvalue;
}
这工作很适合我的国际电话号码。函数格式PhoneNumber(cellvalue,options,rowObject){0} {0} { [0-9] {4,6})“,”g“); cellvalue = cellvalue.replace(re,“($ 1)$ 2- $ 3”); return cellvalue; } – user424855