#regex
Вопрос:
Я хотел бы иметь регулярное выражение, которое соответствует строке без пробелов в начале. Но строка, содержащая пробелы посередине, МОЖЕТ совпадать. До сих пор я пробовал ниже
[^-s][a-zA-Z0-9-_\s] $
Выше не допускается наличие пробелов в начале, но также не допускается наличие пробелов в середине/конце строки. Пожалуйста, помогите мне.
Ответ №1:
В вашем 2-м классе персонажей \s
будет совпадать
и s
, и нет s
. Таким образом, он не соответствует пробелу. Вы должны использовать только s
там. Кроме того, переместите дефис ближе к концу, иначе он создаст непреднамеренный диапазон в классе символов:
^[^-s][a-zA-Z0-9_s-] $
Ответ №2:
Вам нужно использовать это регулярное выражение:
^[^-s][ws-] $
- Используйте стартовую привязку
^
- Нет необходимости в двойном побеге
s
- Также важно использовать дефис в качестве первого или последнего символа в классе символов.
w
это то же самое, что[a-zA-Z0-9_]
Ответ №3:
Если вы планируете сопоставить строку любой длины (даже пустую строку), которая соответствует вашему шаблону и не начинается с пробела, используйте (?!s)
сразу после ^
:
/^(?!s)[a-zA-Z0-9_s-]*$/
^^^^^^
Или, имея в виду, что [A-Za-z0-9_]
в JS регулярное выражение равно w
:
/^(?!s)[ws-]*$/
Это (?!s)
отрицательный внешний вид, который соответствует местоположению в строке, за которым сразу не следует пробел (соответствует шаблону s
).
Если вы хотите добавить больше «запрещенных» символов в начале строки (похоже, вы также запрещаете -
), продолжайте использовать [s-]
класс символов в заголовке:
/^(?![s-])[ws-]*$/
Чтобы соответствовать хотя бы 1 символу, замените *
на
:
/^(?![s-])[ws-] $/
Смотрите демонстрацию регулярных выражений. Демонстрация JS:
console.log(/^(?![s-])[ws-] $/.test("abc def 123 ___ -loc- "));
console.log(/^(?![s-])[ws-] $/.test(" abc def 123 ___ -loc- "));
Ответ №4:
используйте S в начале
^S [a-zA-Z0-9-_\s] $
Ответ №5:
Это регулярное выражение не допускает ни пробелов в начале, ни в конце. Ваша строка/слово и допускает все специальные символы.
^[^s]. [^s]$
Это регулярное выражение также отлично работает
^[^s] (s [^s] )*$
Ответ №6:
попробуйте, это должно сработать
[a-zA-Z0-9_] .*$
Ответ №7:
/^[^.s]/
- попробуйте это вместо этого, это не позволит пользователю вводить символ в первую очередь
- ^ соответствует позиции непосредственно перед первым символом строки
- . соответствует одному символу. Не имеет значения, какой это символ, кроме новой строки
- s — это пространство
Ответ №8:
Если ваше поле для имени пользователя принимает только буквы и середину пробела, но не для начала и конца
Имя пользователя: /^[^s][a-zA-Zs] [^s]$/
Если в вашем поле для идентификатора пользователя принимаются только буквы,цифры и подчеркивание, а пробелы запрещены
идентификатор пользователя: /^[w] $/
Если в вашем поле для пароля принимаются только буквы,цифры и специальные символы, пробелы не допускаются
Пароль: /^[w@#amp;] $/
Примечание: w
содержимое a-zA-Z
, number
, подчеркивание ( _
) если вы добавляете больше символов, добавьте специальный символ после w
.
Вы можете сравнить с полем идентификатора пользователя и пароля в поле пароля, только добавьте какой-нибудь специальный символ ( @#amp;
).
Индийской публике токо нравится 😁
Ответ №9:
Я предлагаю ниже регулярное выражение для этого,
^[^s].*[^s]$
Вы можете попробовать регулярные выражения здесь