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]+)*$