我有一个文本框,上面写着“电话:”,因为这里电话号码的标准是 (XXX)-XXX-XXXX 我想要一个 javascript,如果它不是那种格式,它会自动将我的号码转换成那种格式,因此,如果您输入 9993334444 那么它会在我输入 (999)-333-4444 时自动更改它寻找?
问问题
825 次
2 回答
2
你想添加一个带有正则表达式的 onkeyup 事件
this.value = this.value.replace(/^\(?([0-9][0-9][0-9]){1}\)?-?([0-9][0-9][0-9][0-9]){1}-?([0-9][0-9][0-9]){1}$/, '($1)-$2-$3');
/ means start/end a regex string
^ means start of matching string
$ means end of matching string
? means 0 or 1 instances (make braces and dashes optional)
[0-9] means any single digit
(x){1} tags x as an expression that we can reference in the replacement with a $ sign
编辑:意识到我错过了最后一组数字的一个数字,jsfiddle 只能(正确)在最后一组数字中使用 3 个数字
于 2012-05-16T12:11:44.103 回答
0
要在@Andrews 答案的基础上有所建树,您可以通过此方法检查有效的(本地)电话号码。如果数字短于或大于 10 位数字,它将重新折叠为无效数字
-
<input type="text" onBlur="localNumber(this.value)"/>
<div id="output"></div>
-
<script>
var localNumber = function(str){
repl = str.replace(/^([0-9]{3})([0-9]{3})([0-9]{4})$/, "($1)-$2-$3");
outp = document.getElementById('output');
if( repl.match(/\W/) )
{
outp.innerHTML = repl;
}
else
{
outp.innerHTML = 'Invalid number for this region';
}
}
</script>
于 2012-05-16T12:52:49.453 回答