电话面罩:仅在数字7上加上一个加号

下面的代码可以正常工作,但是我要考虑两点。

  1. 仅将+号添加到数字7(如果是其他数字,则不带+号)。
  2. 添加将号码替换为另一个号码的功能。现在,您只能使用退格键和删除键进行删除。我也希望使用数字键。
    var phoneInput = document.querySelectorAll(".i_phone");
    for(var i=0; i < phoneInput.length; i++){
        phoneInput[i].addEventListener("keydown", function(e) {
            "ArrowLeft" != e.key && "ArrowRight" != e.key && "Backspace" != e.key && "Delete" != e.key && "Tab" != e.key && e.preventDefault();
            var t = "+1 (111) 111-11-11";
            if (/[0-9\+\ \-\(\)]/.test(e.key)) {
                var a = this.value,
                n = a.length;
                if(n>0 && e.key=='+');
                else if (/[0-9+]/.test(e.key)){
                    if ("1" == t[n]) 
                    this.value = a + e.key;
                    else if ("+" == t[n]) 
                    {
                        this.value = a + e.key;      
                    }
                    else if ("+" != t[n]) 
                    {
                        for (var r = n; r < t.length; r++) {
                            if ("1" == t[r]) {
                                this.value = a + e.key;
                                break
                            }
                            a += t[r]
                        }
                    }
                    if(this.value.length==1 && this.value!="+")
                    {
                        this.value="+"+this.value;
                    }
                }   
            }
        });
    }

谢谢您的帮助

评论