Ответ 1
Вместо этого вы можете использовать lookaround, если все, что вы хотите сопоставить, - это пробел:
(?<=\s|^)\d+(?=\s|$)
В настоящее время я использую шаблон: \b\d+\b
, тестируя его с помощью этих записей:
numb3r
2
3454
3.214
test
Я только хочу, чтобы он поймал 2 и 3454. Он отлично подходит для ловли числовых слов, за исключением того, что граничные флаги (\b)
включают "."
как рассмотрение как отдельное слово. Я попытался исключить период, но возникли проблемы с написанием шаблона.
В основном я хочу удалить целочисленные слова и только их в одиночку.
Вместо этого вы можете использовать lookaround, если все, что вы хотите сопоставить, - это пробел:
(?<=\s|^)\d+(?=\s|$)
Все, что вам нужно, это следующее регулярное выражение:
^\d+$
Подобно manojlds, но включает в себя необязательные отрицательные/положительные числа:
var regex = /^[-+]?\d+$/;
ИЗМЕНИТЬ
Если вы не хотите разрешать нули спереди (023
становится недействительным), вы можете записать его следующим образом:
var regex = /^[-+]?[1-9]\d*$/;
ИЗМЕНИТЬ 2
Как отметил @DmitriyLezhnev, если вы хотите разрешить номер 0
быть действительным сам по себе, но все же недопустим, когда перед другими номерами (пример: 0
действителен, но 023
недействителен). Затем вы можете использовать
var regex = /^([+-]?[1-9]\d*|0)$/
^([+-]?[0-9]\d*|0)$
будет принимать числа с ведущими "+", ведущими "-" и "0"
Я бы добавил это как комментарий к другим хорошим ответам, но мне нужно больше репутации, чтобы сделать это. При необходимости обязательно укажите научную запись, т.е. 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
Попробуйте /^(?:-?[1-9]\d*$)|(?:^0)$/
.
Это соответствует положительным, отрицательным числам, а также нулям.
Он не соответствует вводу, например, 00
, -0
, +0
, -00
, +00
, 01
.
Онлайн тестирование доступно на http://rubular.com/r/FlnXVL6SOq
Это работало в моем случае, когда мне нужны положительные и отрицательные целые числа, которые НЕ должны включать нулевые стартовые числа, такие как 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"
^ (- +)? [1-9] [0-9] * $ начинается с a - или + для 0 или 1 раза, тогда вы хотите получить ненулевое число (потому что нет такой вещи -0 или +0), а затем оно продолжается с любым числом от 0 до 9
Это просто позволяет положительные целые числа.
^[0-9]*[1-9][0-9]*$