我正在Adobe Acrobat Pro中创建PDF表单,并希望使用javascript格式化电话号码,以便在区号之后包含空格,并在前缀后添加连字符。我希望允许用户在10位电话号码后输入分机号码和其他相关信息。
以下是一些如何格式化电话号码的示例:
Number Entered Formatted Version
2125551212 212 555-1212
(212) 555 1212 212 555-1212
212-555-1212 ext. 101 212 555-1212 ext. 101
212 555 1212 x101 212 555-1212 x101
下面的代码应首先删除任何空格,连字符和其他非数字或字母的字符。这部分似乎工作正常,但代码的重新格式化部分无法正常工作。当用户添加扩展名时,格式化完全关闭。例如,212 5551212 ext 339变为212 5-5--1212 ext339。
{
f_val = event.value.replace(/\D\W[^\.]/g, "");
event.value = f_val.slice(0,3)+" "+f_val.slice(3,6)+"-"+f_val.slice(6);
}
非常感谢任何想法或建议。
(请注意,我知道此代码无法验证,目前不希望它这样做。)
答案 0 :(得分:2)
如果您的示例中的所有电话号码总是如此,则可以使用单个替换:
var re = /\(?(\d{3})\)?[- ]?(\d{3})[- ]?(\d{4})/g;
var subst = '$1 $2-$3';
var result = str.replace(re, subst);