Она должна начинаться с^и - нужно экранировать с \
pattern=/^[0-9 \-+]+$/;
Он должен начать с ^, что и является якорем для начала строки, если вы Бесполезный 't он будет проверять строки, которые начинаются с чего угодно, если они заканчиваются номером, пробелом, или +
-
необходимо экранировать, поскольку это специальный символ и имеет значение, отличное от -
. В то время как +
является специальным символом, и если вы хотите рассматривать его как +
вне класса, его нужно экранировать, когда внутри класса необходимо только экранировать ]^-\
.
Так за пределами класса побег
.^$|*+?()[{\
И внутри побега:
]^-\
Однако, большинство реализаций позволяют избежать всех 12 специальных символов внутри классов без ошибок, и они будут только дать если вы избежите неспециального символа, что означает, что это (обратите внимание на дополнительный \
перед плюсом) также будет работать нормально.
pattern="^[0-9 \-\+]+$"
Я всегда считаю, что использование a regex tester делает вещи проще, так как это позволяет мне видеть ошибки.
Значит, '9 ++ 23 ++ - 13' является действительным номером телефона? – Amarghosh