Javascript 如何在jQuery中设置没有插件的输入电话号码格式?
我想在Javascript 如何在jQuery中设置没有插件的输入电话号码格式?,javascript,jquery,html,Javascript,Jquery,Html,我想在按键上格式化我的 “我的输入”字段的要求如下: 仅限数字,不含字母和其他特殊字符 使用美国编号格式化输入字段,如(123)457-7890 这是我当前的代码: jQuery("#phone_number").on("keypress", function(event) { var reg = /[0-9]/g; var key = String.fromCharCode(event.keyCode); if(!reg.test(key)){ //
按键上格式化我的
“我的输入”字段的要求如下:
- 仅限数字,不含字母和其他特殊字符
- 使用美国编号格式化输入字段,如
(123)457-7890
这是我当前的代码:
jQuery("#phone_number").on("keypress", function(event) {
var reg = /[0-9]/g;
var key = String.fromCharCode(event.keyCode);
if(!reg.test(key)){
// return false if NOT number
return false;
} else {
// numbers only
var phone_value = jQuery("#phone_number").val();
var number = phone_value.replace(/(\d{3})(\d{3})(\d{2})/,"$1-$2-$3");
jQuery("#phone_number").val(number);
}
});
问题:我的代码的问题是无法限制输入的长度
最终输出
应类似于(123)457-7890
括号中的前3位数字
非常感谢您的帮助。谢谢我想这会给你所需要的。你很接近答案
我已使用maxlength
属性限制了
的长度,并在phone\u值中添加了括号。replace()
函数围绕$1
jQuery(“#电话号码”)。打开(“按键”,功能(事件){
var reg=/[0-9]/g;
var key=String.fromCharCode(event.keyCode);
如果(!注册测试(密钥)){
//如果不是数字,则返回false
返回false;
}否则{
//仅限数字
var phone_value=jQuery(“#phone_number”).val();
var number=phone_value.replace(/(\d{3})(\d{3})(\d{2})/,“($1)$2-$3”);
jQuery(“#电话号码”).val(号码);
}
});代码>
请记住,在您的问题中只包含相关标签:)谢谢您。你能解释一下这行代码吗。。如何将第一组
的数字限制为3位,然后第二组
限制为3位,然后第三组
限制为4位?该行仅将数字分组为3位、3位和2位$1
表示第一组,$2
表示第二组,$3
表示第三组。那么你的替补就成功了。因此,如果您输入1234577890,它会将“123”替换为“(123)”,然后将“457”替换为“457”,将“78”替换为“-78”。“90”保持原样。因此,输出为“(123)457-7890”。希望你能理解!