Как разрешить ввод только цифр и минуса в начале?
Привет. Есть такой код -
$( document ).ready(function() { $("#AXInput").on("keypress keyup blur",function (event) { //this.value = this.value.replace(/[^0-9\.]/g,''); $(this).val($(this).val().replace(/[^0-9\.]/g,'')); if ((event.which != 46 || $(this).val().indexOf('.') != -1) && (event.which < 48 || event.which > 57)) { event.preventDefault(); } }); }); Он разрешает вводить только цифры и точки, если нужна float переменная . А как сделать так, чтобы можно было ввести еще и знак минус(-), перед строкой? Например -1,56 или -5. То есть только в начале строки разрешить ввод знака. |
Цитата:
var re=/^\-?\d*?(\.\d+)?/; alert(re.test('123')); alert(re.test('0.123')); alert(re.test('.123')); alert(re.test('1.23')); alert(re.test('-1.56')); alert(re.test('-5')); |
<input type="number"> |
Цитата:
$( document ).ready(function() { var AX; var re=/^\-?\d*?(\.\d+)?/; $("#AXInput").on("keypress keyup blur",function (event) { AX = re.test($(this)); }); }); Или так $( document ).ready(function() { $("#AXInput").on("keypress keyup blur",function (event) { //this.value = this.value.replace(/[^0-9\.]/g,''); $(this).val($(this).val().replace(/^\-?\d*?(\.\d+)?/,'')); if ((event.which != 46 || $(this).val().indexOf('.') != -1) && (event.which < 48 || event.which > 57)) { event.preventDefault(); } }); }); Не получается, что то. |
$('#AXInput').on('input keyup', function() { this.value = this.value.replace(/\-{2,}/, '-').replace(/[^\d\.-]|\b-/, '') }) |
Цитата:
|
replace(/[^\d\.-]|\b-/, '') - так будет верно, исправьте.
PS. Не вник, а разрешены десятичные, значит в исключения нужно добавить точку, но как и со знаком нужно еще бороться с двойным ее вводом. |
Часовой пояс GMT +3, время: 12:05. |