2013-12-19 2 views
1

У меня есть этот HTML код:Невозможно установить маску для поля ввода

<input 
    type="text" 
    placeholder="0000 - 0000 - 0000" 
    onkeyup=" 
     var v = this.value; 
     if (v.match(/^\d{4}$/) !== null) { 
      this.value = v + ' - '; 
     } else if (v.match(/^\d{4}\/\d{4}$/) !== null) { 
      this.value = v + ' - '; 
     }" 
> 

вход выглядит следующим образом: enter image description here. Когда я набираю числа, такие как 463985637851, текст на моем входе должен быть «4639 - 8563 - 7851».

Между прочим, я не получаю разницу между числами. Что здесь не так?

fiddle

ответ

2

Fiddle

Дайте поле ввода идентификатор:

HTML:

<input type="text" placeholder="0000 - 0000 - 0000" id="mynum" /> 

JS:

$('#mynum').keyup(function() { 
    var v= $(this).val().split("-").join(""); 
    if (v.length > 0) { 
     v= v.match(new RegExp('.{1,4}', 'g')).join("-"); 
    } 
    $(this).val(v); 
}); 
+0

Используйте 'MaxLength = "14" '- 1 2 номера и 2 дефиса. Затем используйте regex для его проверки. – Ani

Смежные вопросы