regex позволяют только числа или пустую строку

Может кто-то помогать мне создать этот regex. Мне нужен он для проверки, чтобы видеть, является ли строка или полностью (пустым) пробелом или если это только содержит положительные целые числа. Если что-либо еще это перестало работать. Это - то, что я имею до сих пор.

/^\s*|[0-9][0-9]*/
23
задан IamBanksy 14 July 2010 в 17:44
поделиться

3 ответа

Вы ищете:

/^(\s*|\d+)$/

Если вам нужно положительное число без начальных нулей, используйте [1-9][0-9]*

Если вас не волнуют пробелы вокруг числа, вы также можете попробовать:

/^\s*\d*\s*$/

Обратите внимание, что вы не хотите разрешать частичное сопоставление, например, 123abc, поэтому вам нужны начальные и конечные привязки: ^...$.
Ваш regex имеет распространенную ошибку: ^s*|d+$, например, не применяет целое соответствие, так как это то же самое, что и (^s*)| (d+$) , чтение, пробелы в начале или цифры в конце.

46
ответ дан 29 November 2019 в 01:12
поделиться

Вы можете попробовать-

/^\d*$/

Чтобы совпадение с пробелом-

/^[\s\d\s]*$/
1
ответ дан 29 November 2019 в 01:12
поделиться

У Kobi есть хороший ответ, но технически вам не нужно захватывать его (если вы не собираетесь делать что-то на выходе)

/^[\s\d]+$/

Или если вам все равно, если строка полностью пуста (т.е. "")

/^[\s\d]*$/

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

3
ответ дан 29 November 2019 в 01:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: