Javascript 当无法删除某些号码时,如何在XX-XXX XXXX格式后删除格式电话号码中的可移动数字?

Javascript 当无法删除某些号码时,如何在XX-XXX XXXX格式后删除格式电话号码中的可移动数字?,javascript,polymer,Javascript,Polymer,我已经对手机号码进行了编码,但无法删除某些数字。 我受不了。你能帮帮我吗 <paper-input id="email" name="email_address" class="email" label="Email" type="email" error-message="Please enter valid email format" required auto-validate></paper-input> const isModifierKey = (eve

我已经对手机号码进行了编码,但无法删除某些数字。 我受不了。你能帮帮我吗

<paper-input id="email" name="email_address" class="email" label="Email"  type="email" error-message="Please enter valid email format" required auto-validate></paper-input>


const isModifierKey = (event) => {
            const key = event.keyCode;
            return (event.shiftKey === true || key === 35 || key === 36) || (key === 8 || key === 9 || key === 13 || key === 46) || (key > 36 && key < 41) || ((event.ctrlKey === true || event.metaKey === true) && (key === 65 || key === 67 || key === 88 || key === 90))
        };

        const isNumericInput = (event) => {
            const key = event.keyCode;
            return ((key >= 48 && key <= 57) || // Allow number line
                (key >= 96 && key <= 105) // Allow number pad
            );
        };

        const enforceFormat = (event) => {
            if (!isNumericInput(event) && !isModifierKey(event)) {
                event.preventDefault();
            }
        };

        const formatToPhone = (event) => {
            if (isModifierKey(event)) {
                return;
            }

            const target = event.target;
            const input = event.target.value.replace(/\D/g, '').substring(0,11);
            const zip = input.substring(0,2);
            const middle = input.substring(2,5);
            const last = input.substring(5,11);

            if(input.length > 5) {
                target.value = `${zip}-${middle} ${last}`;
            } else if (input.length > 1) {
                target.value = `${zip}-${middle}`;
            } else if (input.length > 0) {
                target.value = `${zip}-`;
            }
        };

        const inputElement = this.$.phone;
        inputElement.addEventListener('keydown', enforceFormat);
        inputElement.addEventListener('keyup', formatToPhone);


常量isModifierKey=(事件)=>{
const key=event.keyCode;
return(event.shiftKey==true | | key==35 | | | key==36 | | |(key==8 | | key==9 | | key==13 | | | key==46 | |(key>36&&key<41)| |((event.ctrlKey==true | | event.metaKey==true | event.metaKey==true)和(key==65 | key==248;
};
常量IsNumericiInput=(事件)=>{
const key=event.keyCode;
返回((键>=48&&key=96&&key){
如果(!isNumericiInput(事件)&&!isModifierKey(事件)){
event.preventDefault();
}
};
const formatToPhone=(事件)=>{
if(isModifierKey(事件)){
返回;
}
const target=event.target;
const input=event.target.value.replace(/\D/g')。子字符串(0,11);
const zip=input.substring(0,2);
常量middle=输入子字符串(2,5);
const last=输入子串(5,11);
如果(输入长度>5){
target.value=`${zip}-${middle}${last}`;
}否则如果(input.length>1){
target.value=`${zip}-${middle}`;
}else if(input.length>0){
target.value=`${zip}-`;
}
};
const inputElement=此.$.phone;
addEventListener('keydown',enforceFormat);
inputElement.addEventListener('keyup',formatToPhone);

我希望删除数字以替换新号码。如何处理电话号码格式中的可删除数字。这里使用Polymer 3.0。

在Polymer 3.0中,我已经修复了它

static get template(){
  return html`
  <paper-input id="phone" name="mobilephone_no" allowed-pattern= "[0-9]" country-code="" placeholder="XX-XXX XXXX" maxlength="9" required>

  `
}

ready(){
super.ready();
        this.$.phone.addEventListener('keyup', function(e) {
            var ph = this.value.replace(/\D/g,'').substring(0,9);
            var deleteKey = (e.keyCode == 8 || e.keyCode == 46);
            var len = ph.length;
            if(len==0){
                ph=ph;
            }else if(len<2){
                ph= ph;
            }else if(len==2){
                ph = ph + (deleteKey ? '' : '');
            }else if(len<5){
                ph= ph.substring(0,2)+'-'+ph.substring(2,5);
            }else if(len==5){
                ph= ph.substring(0,2)+'-'+ph.substring(2,5)+ (deleteKey ? '' : '');
            }else{
                ph= ph.substring(0,2)+'-'+ph.substring(2,5)+' '+ph.substring(5,9) + (deleteKey ? '' : '');
            }
            this.value = ph;
        });

        this.$.phone.addEventListener('keydown', function(e) {
            var ph = this.value.replace(/\D/g,'').substring(0,9);
            var deleteKey = (e.keyCode == 8 || e.keyCode == 46);
            var len = ph.length;
            if(len < 9){
                ph=ph;
            }else if(len<2){
                ph= ph;
            }else if(len==2){
                ph = ph + (deleteKey ? '' : '-');
            }else if(len<5){
                ph= ph.substring(0,2)+'-'+ph.substring(2,5);
            }else if(len == 5){
                ph= ph.substring(0,2)+'-'+ph.substring(2,5) + (deleteKey ? '' : '');
            }else{
                ph= ph.substring(0,2)+'-'+ph.substring(2,5) +' '+ph.substring(5,9) + (deleteKey ? '' : '');
            }
            this.value = ph;
        });
}


静态获取模板(){
返回html`
`
}
就绪(){
super.ready();
此.$.phone.addEventListener('keyup',函数(e){
var ph=此.value.replace(/\D/g')。子字符串(0,9);
var deleteKey=(e.keyCode==8 | | e.keyCode==46);
var len=ph.长度;
如果(len==0){
ph=ph;

}else if(请定义可移动数字。哪些数字与术语“可移动数字”匹配?我建议根据您的输入添加一个预期输出的示例。@k3llydev,我输入数字数字(完整)在输入中,当数字错误时,我想删除一些数字,但无法删除一些数字。@MarkBaijens抱歉,我解释得不够充分。我想在手机输入的数字格式为XX-XXX XXXX时输入错误的数字,然后我删除了数字,但无法删除所有数字。它已经这样做了吗?