我发现了一个非常古老的例子,但它几乎正是我需要做的事情: 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);
});
答案 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('-')
。那就是你从'。
答案 2 :(得分:0)
您需要对这3个正则表达式进行标记,然后单独加入它们。