2014-01-08 4 views
0

Я пишу скрипт, который будет ставить пробел после каждых 4-х цифр, чтобы достичь этого я пишу скрипт, который работает отличноВвод пробела после определенного символа подсчитывать Javascript

это как

function putSpace(el, after) { 
     putSapceAfter = putSapceAfter || 4; 
     var v = el.value.replace(/[^\dA-Z]/g, ''), 
      reg = new RegExp(".{" + putSapceAfter + "}","g") 
     el.value = v.replace(reg, function (a, b, c) { 
      return a + ' '; 
     }); 
    } 

    var el = document.getElementById('numerDom'); 
    el.addEventListener('keyup', function() { 
     putSpace(this, 5); 
    }); 

Теперь, если число начинается с 6011 или 65, после чего я хочу поместить первое пространство после 4-х цифр, а затем после каждых 5 цифр внутри текстового поля для отдыха остальные помещают пробел после каждых 4 цифр.

Заранее спасибо.

+0

Итак, каков ваш вопрос? –

ответ

0

Это должно делать то, что вы хотите:

String.prototype.chunk = function(n) { 
    var ret = []; 
    for(var i=0, len=this.length; i < len; i += n) { 
     ret.push(this.substr(i, n)) 
    } 
    return ret 
}; 

function insertSpace() { 
    // Disregard everything bar digits and captals 
    this.value = this.value.replace(/[^\dA-Z]/g, '') 

    // Start with 6011 or 65 
    var hit = this.value.match(/^(6011|65)/); 

    if(hit){ 
    var part_1 = this.value.slice(0,4), 
     part_2 = this.value.slice(4).chunk(5).join(" "); 

    if(part_1.length === 4){ 
     this.value = part_1 + " " + part_2; 
    } 
    } else { 
    this.value = this.value.chunk(4).join(" "); 
    } 
} 

var el = document.getElementById('numerDom'); 
el.addEventListener('keyup', insertSpace, false); 

Я получил функцию String.prototype.chunk здесь: How can I insert a character after every n characters in javascript?

Вот fiddle.

+0

мы можем сделать это с помощью jquery? – Soarabh

+0

Err, jQuery - это JavaScript. –

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