Как разрешить ввод только цифр и минуса в начале?
Привет. Есть такой код -
$( 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, время: 10:14. |