Auto Reg Ex电话号码格式(xxx)xxx-xxxx

时间:2016-05-24 00:39:59

标签: javascript regex

我发现了一个非常古老的例子,但它几乎正是我需要做的事情: Auto Dash using Javascript on FOCUS (for a telephone number format)

然而,而不是当前格式xxx-xxx-xxxx我想做(xxx)xxx-xxxx

有人可以用下面的脚本帮我一把吗?

$('.telnumber').keyup(function() {
    this.value = this.value
        .match(/\d*/g).join('')
        .match(/(\d{0,3})(\d{0,3})(\d{0,4})/).slice(1).join('-')
        .replace(/-*$/g, '');

    console.log("this value", this.value);
});

3 个答案:

答案 0 :(得分:1)

你可以做这样的事情

var a = this.value.match(/\d*/g).join('')
        .match(/(\d{0,3})(\d{0,3})(\d{0,4})/).slice(1);

this.value  = ['(',a[0],') ',a[1],'-',a[2]].join('');

它不是很优雅,但嘿,优雅适合裁缝吗?

<强>更新

是的,我感到无聊,并且做了一个单行,在这里:

this.value =  '('+this.value
        .match(/\d*/g).join('')
        .match(/(\d{0,3})(\d{0,3})(\d{0,4})/).slice(1)
        .map((a,i)=>(a+[') ','-',''][i])).join(''); 

答案 1 :(得分:0)

您要更改的代码是.join('-')。那就是你从'。

获得'xxx-xxx-xxxx'的地方

答案 2 :(得分:0)

您需要对这3个正则表达式进行标记,然后单独加入它们。