2013-08-08 3 views
0

Я пытаюсь создать скрипт, который заменит все нежелательные символы (из regexp) во входном сигнале события keyup. Я пробовал все, но ничего не работает для меня ...javascript regexp on keyup

Мой код:

$('#form_accomodation_cell').on('keyup', 'input[name="accomodation_cell[]"]', function() { 

    var value = $(this).val(); 
    var regex_cell = /^[0-9 \+]+$/g; 

    if (!isNumeric(value, regex_cell)) 
    { 
     var new_value = value.replace(regex_cell, ''); 
     alert(new_value); 
    } 

    function isNumeric(elem, regex_cell) { 
     if(elem.match(regex_cell)){ 
      return true; 
     }else{ 
      return false; 
     } 
    } 

}); 
+0

_ (...) но ничего не работает для меня (...) _ что вы подразумеваете под этим? –

+0

, что предупреждение показать мне new_value как значение (с нежелательными символами) ... – general666

+0

Итак, какие _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ Что бы вы хотели сохранить в 'new_value', если' value' является 'a123b12c'? –

ответ

1

Попробуйте это:

$('#form_accomodation_cell').on("keyup", function() { 
    var value = $(this).val(); 
    var regex_cell = /[^[0-9 +]]*/gi; 
    var new_value = value.replace(regex_cell, ''); 
    alert(new_value); 
}); 

Посмотри here в действии.

+0

вы пробовали? Это одно и то же ... Строка предупреждения также имеет нежелательный характер (она не заменяет ее на «) ... – general666

+0

и это тот же код, что и у меня, вы только меняли событие ... (в вашем случае это не будет работает над элементами DOM) – general666

+0

Пожалуйста, проверьте мой обновленный ответ. –

1

Я думаю, вы должны попытаться поймать событие и окончательно написать так!

function validateNumber(evt) { 
var theEvent = evt || window.event; 
var key = theEvent.keyCode || theEvent.which; 
key = String.fromCharCode(key); 
var regex = /^[0-9 \+]+$/g; 
    if(!regex.test(key)) { 
    theEvent.returnValue = false; 
    if(theEvent.preventDefault) theEvent.preventDefault(); 
} 
}