我有一个文本框,上面写着“电话:”,电话号码的标准是(XXX)-XXX-XXXX 我想有一个自动将我的数字放入该格式的javascript,如果它不是那种格式,所以如果你输入9993334444然后它会在我输入的时候自动更改它(999)-333-4444我已经浏览了Google的Javascript Phone Regex,但没有成功,也许我正在寻找正则表达式?
答案 0 :(得分: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位数(正确)
答案 1 :(得分: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>