Регулярное число с запятыми
Я пытаюсь проверить список, разделенный запятыми, для чисел 1-8.
то есть. 2,4,6,8,1
- допустимый ввод.
Я пробовал [0-8,]*
, но, похоже, он принимает 1234
как действительный. Это не требует запятой, и это позволяет мне вводить число больше 8. Я не уверен, почему.
Ответы
Ответ 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])+$