2016-04-28 5 views
2

Я использую это регулярное выражение и этот код для номера только входJquery - Regex нажатие клавиши действия отличаются в Chrome и Firefox

var numRegex = "[0-9\b]"; 

и

$('.numOnly').keypress(function(e){ 
    var regex = new RegExp(numRegex); 
    var str = String.fromCharCode(!e.charCode ? e.which : e.charCode); 
    if (regex.test(str)) { 
     return true; 
    } else { 
    e.preventDefault(); 
    return false; 
    }}); 

Мой код работает в Chrome также включают Цифровой ввод, Backspace, Return Key, Home, End, Shift и Ctrl, но в firefox я могу делать только тип Numeric и backspace.

Есть ли лучшее решение для использования цифровой печати и другого необходимого материала с помощью Regex?

Спасибо

+0

Проверьте это SO-ссылку http://stackoverflow.com/questions/17164239/add-delete-and-arrow-key-into-regular-expression для решения – ahPo

+0

Можете ли вы определить «другой необходимый материал»? Какие символы должны быть допустимы/запрещены? Вы можете явно запретить символы с отрицательным совпадением, регулярное выражение работает более предсказуемо. Это исключает все буквы: var numRegex = "[^ A-Za-z]"; –

+0

Зачем использовать JQuery, используйте '' –

ответ

0

Вы можете использовать

<input type="text" onkeypress="return (event.charCode == 8 || event.charCode == 0) ? null : event.charCode >= 48 && event.charCode <= 57" name="numOnly" />

Нет необходимости в специальной обработке JQuery. Проверка (event.charCode == 8 || event.charCode == 0) ? предназначена для поддержки ключей BACKSPACE и DELETE в FireFox.

+0

** Спасибо **. Это хорошо работает: D – Ampersanda