Подтвердить что ты не робот

Ввод HTML для положительных целых чисел (Тип = число)

Я не могу найти правильный шаблон регулярного выражения для этого, хотя в этом есть много вопросов.

Я не хочу, чтобы пользователь мог вводить или вводить

<td><input type="number" pattern=" 0+\.[0-9]*[1-9][0-9]*$" name="itemConsumption" /></td>
  • -1.0 (Отрицательные значения)
  • Строковые значения и любой символ
  • 1.0 (десятичные значения)
  • Без ограничения диапазона

Я хочу принимать только положительные целые числа

РЕШИТЬ нет необходимости в регулярном выражении, я не знал этого: D

<td><input type="number" pattern=" 0+\.[0-9]*[1-9][0-9]*$" name="itemConsumption" onkeypress="return event.charCode >= 48 && event.charCode <= 57"</td> 
4b9b3361

Ответ 1

Чтобы набрать любой ввод, но числовой, вы можете использовать

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

<form id="mfrm">
<table>
    <tr>
        <td>Enter number only: <input type="text" name="itemConsumption" onkeypress="return (event.charCode == 8 || event.charCode == 0 || event.charCode == 13) ? null : event.charCode >= 48 && event.charCode <= 57" /></td>
        <td><input type="Submit"/></td>
    </tr>
</table>

Ответ 2

Чтобы разрешить только числовые значения, вы можете использовать следующее:

<td><input type="number" pattern="\d+" name="itemConsumption" /></td>

Ответ 3

Если дело доходит до HTML5, вы можете попробовать min атрибут:

<input type="number" min="0">

Ответ 4

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

<input type="number" min="0" step="1" oninput="validity.valid||(value='');">

<form>
<label>Input with positive numbers only</label><br/><br/>
<input type="number" min="0" step="1" oninput="validity.valid||(value='');">
</form>

Ответ 5

Вы можете использовать этот шаблон регулярного выражения для целых чисел [0-9] * или \d * [0-9] - диапазон, который вы можете ввести от 0 до 9, и * означает, что вы не ожидаете какого-либо числа или можете вводить бесконечные числа

Ответ 6

Может быть, этот фрагмент кода JQuery Codepen будет полезен для кого-то. Это для type = "number" (не "text"):

<input class="js-input-absint" type="number" step="1" min="18"  max="150" name="age" value="50">

только с [0-9] разрешенными входами. На входе будут напечатаны/вставлены только цифры [0-9] с мин-макс диапазоном (опционально).

Некоторые пояснения: код отображает только цифры на этапе ввода и не сбрасывает значение в "" (пустое) в случае ввода недопустимых числовых значений, как это происходит по умолчанию для type = "number". И вы не можете использовать атрибут pattern = "/^ [0-9] * $/" для типа ввода = "число".

var $inputAbsint = $('.js-input-absint');

if ($inputAbsint.length) {

  $(document).on('keypress', '.js-input-absint', function (event) {

    var allowed = /^[0-9]|Arrow(Left|Right)|Backspace|Home|End|Delete$/;
    return allowed.test(event.key);

  }).on('focusout paste', '.js-input-absint', function () {

    var $input = $(this);
    var defaultValue = this.defaultValue || $input.attr('min');
    // Important(!): Timeout for the updated value
    setTimeout(function () {
        var current = $input.val();
        var regexNumbers = new RegExp(/^[0-9]*$/, 'g');
        var isNumbersOnly = regexNumbers.test(current);
        // Clear wrong value (not numbers)
        if ((current === '' || !isNumbersOnly) && defaultValue.length) {
            $input.val(defaultValue);
            current = defaultValue;
        }
        // Min/Max
        var min = parseInt($input.attr('min'), 10);
        var max = parseInt($input.attr('max'), 10);
        var currentInt = parseInt(current, 10);
        if (!isNaN(min) && !isNaN(currentInt) && currentInt < min) {
            $input.val(min);
        }
        if (!isNaN(max) && !isNaN(currentInt) && currentInt > max) {
            $input.val(max);
        }
    }, 100);

  });

}

Ответ 7

Вы не можете нажать кнопку "-" на клавиатуре.

<!--HTML Code is below-->
<input type="text" name="value1" id="value1" class="form-control" required="required" onkeydown="keyCode(event)">

<!--JQuery Code is below-->
<script>
       $(document).ready(function() {
        $value1.on("keyup", function keyCode(event){
            var x = event.keyCode;
            if (x == 109 || x == 189) {
                event.preventDefault();
                alert ("You can't enter minus value !");
            }
        });
      });
</script>

109 - числовая сторона клавиатуры. 189 находится над кнопками символов.

Ответ 8

Вы можете попробовать использовать это регулярное выражение:

^(0|[1-9][0-9]*)$

или даже просто, как сказал Авинаш:

^\d+$

Ответ 9

Лучше всего использовать следующее в поле ввода, это остановит вас, чтобы ввести любой другой символ, кроме целых чисел.

Будет принято только целое число.

onkeypress="return (event.charCode == 8 || event.charCode == 0) ? null : event.charCode >= 48 && event.charCode <= 57"

См. демо