Javascript regex - без пробела в начале + разрешить пространство в середине
Я хотел бы иметь регулярное выражение, которое соответствует строке без пробелов (-ов) в начале. Но строка, содержащая пробелы в средней CAN, соответствует. Пока я пробовал ниже
[^-\s][a-zA-Z0-9-_\\s]+$
![Regular expression visualization]()
Демоверсия Debuggex
Выше не разрешается пробел в начале, но также не разрешается в середине/конце строки. Пожалуйста, помогите мне.
Ответы
Ответ 1
В вашем 2-значном классе \\s
будет соответствовать \
и s
, а не \s
. Таким образом, он не соответствует пробелу. Вы должны использовать только \s
. Кроме того, переместите дефис к концу, иначе он создаст непреднамеренный диапазон в классе символов:
^[^-\s][a-zA-Z0-9_\s-]+$
Ответ 2
Вам нужно использовать это регулярное выражение:
^[^-\s][\w\s-]+$
- Использовать стартовый якорь
^
- Не нужно удваивать escape
\s
- Также важно использовать дефис в качестве первого ИЛИ последнего символа в классе символов.
-
\w
совпадает с [a-zA-Z0-9_]
Ответ 3
используйте\S в начале
^\S+[a-zA-Z0-9-_\\s]+$
Ответ 4
/^[^.\s]/
- попробуйте это вместо этого, это не позволит пользователю вводить символ с первого места
- ^ соответствует позиции непосредственно перед первым символом строки
- соответствует одному символу. Неважно, что это за символ, кроме новой строки
- \ s это пространство
Ответ 5
попробуйте это должно работать
[a-zA-Z0-9_]+.*$
Ответ 6
Этот RegEx не позволит ни пробелов ни в начале, ни в конце. Ваша строка/слово и позволяет все специальные символы.
^[^\s].+[^\s]$
Это регулярное выражение также работает отлично
^[^\s]+(\s+[^\s]+)*$