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

Регулярное выражение, которое соответствует только целым числам

В настоящее время я использую шаблон: \b\d+\b, тестируя его с помощью этих записей:

numb3r 
2
3454 
3.214
test

Я только хочу, чтобы он поймал 2 и 3454. Он отлично подходит для ловли числовых слов, за исключением того, что граничные флаги (\b) включают "." как рассмотрение как отдельное слово. Я попытался исключить период, но возникли проблемы с написанием шаблона.

В основном я хочу удалить целочисленные слова и только их в одиночку.

4b9b3361

Ответ 1

Вместо этого вы можете использовать lookaround, если все, что вы хотите сопоставить, - это пробел:

(?<=\s|^)\d+(?=\s|$)

Ответ 2

Все, что вам нужно, это следующее регулярное выражение:

^\d+$

Ответ 3

Подобно manojlds, но включает в себя необязательные отрицательные/положительные числа:

var regex = /^[-+]?\d+$/;

ИЗМЕНИТЬ

Если вы не хотите разрешать нули спереди (023 становится недействительным), вы можете записать его следующим образом:

var regex = /^[-+]?[1-9]\d*$/;

ИЗМЕНИТЬ 2

Как отметил @DmitriyLezhnev, если вы хотите разрешить номер 0 быть действительным сам по себе, но все же недопустим, когда перед другими номерами (пример: 0 действителен, но 023 недействителен). Затем вы можете использовать

var regex = /^([+-]?[1-9]\d*|0)$/

Ответ 4

^([+-]?[0-9]\d*|0)$

будет принимать числа с ведущими "+", ведущими "-" и "0"

Ответ 5

Я бы добавил это как комментарий к другим хорошим ответам, но мне нужно больше репутации, чтобы сделать это. При необходимости обязательно укажите научную запись, т.е. 3e4 = 30000. Это поведение по умолчанию во многих языках. Я нашел следующее регулярное выражение для работы:

/^[-+]?\d+([Ee][+-]?\d+)?$/;
//          ^^              If 'e' is present to denote exp notation, get it
//             ^^^^^          along with optional sign of exponent
//                  ^^^       and the exponent itself
//        ^            ^^     The entire exponent expression is optional

Ответ 6

Попробуйте /^(?:-?[1-9]\d*$)|(?:^0)$/.

Это соответствует положительным, отрицательным числам, а также нулям.

Он не соответствует вводу, например, 00, -0, +0, -00, +00, 01.

Онлайн тестирование доступно на http://rubular.com/r/FlnXVL6SOq

Ответ 7

Это работало в моем случае, когда мне нужны положительные и отрицательные целые числа, которые НЕ должны включать нулевые стартовые числа, такие как 01258, но должны, конечно, включать 0

^(-?[1-9]+\d*)$|^0$

Пример допустимых значений: "3", "-3", "0", "-555", "945465464654"

Пример недопустимых значений: "0.0", "1,0", "0,7", "690,7", "0,0001", "А", "," ", "," - "," 001 "," 00,2 "," 000,5 "," 0,3 "," 3." "-1 "," +100 "," --1 "," ± 1 "," -0 "," 00099 "," 099"

Ответ 8

^ (- +)? [1-9] [0-9] * $ начинается с a - или + для 0 или 1 раза, тогда вы хотите получить ненулевое число (потому что нет такой вещи -0 или +0), а затем оно продолжается с любым числом от 0 до 9

Ответ 9

Это просто позволяет положительные целые числа.

^[0-9]*[1-9][0-9]*$