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

Регулярное число с запятыми

Я пытаюсь проверить список, разделенный запятыми, для чисел 1-8.

то есть. 2,4,6,8,1 - допустимый ввод.

Я пробовал [0-8,]*, но, похоже, он принимает 1234 как действительный. Это не требует запятой, и это позволяет мне вводить число больше 8. Я не уверен, почему.

4b9b3361

Ответ 1

[0-8,]* будет соответствовать нулю или более последовательным экземплярам 0 через 8 или ,, где угодно в вашей строке. Вам нужно что-то большее:

^[1-8](,[1-8])*$

^ соответствует началу строки, а $ соответствует концу, гарантируя, что вы изучаете всю строку. Он будет соответствовать одной цифре, плюс ноль или более экземпляров запятой, за которой следует цифра после нее.

Ответ 2

/^\d+(,\d+)*$/
  • хотя бы на одну цифру, иначе вы примете 1 ,,, 4

Ответ 3

[0-9]+(,[0-9]+)+

Это лучше работает для чисел, разделенных запятыми, например: 1 234 933

Ответ 4

Вам нужна комбинация число + запятая, которая может повторяться:

 ^[1-8](,[1-8])*$

Если вы не хотите запоминать круглые скобки, добавьте ?: в parens, например:

 ^[1-8](?:,[1-8])*$

Ответ 5

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

^[1-8](,[1-8])+$