Мне нужно разрешить только буквы и некоторые символы. Я использую это регулярное выражение:Регулярное выражение разрешает запятые
([a-zA-Z '-_]*)$")
Но это также позволяет , ; : .
Почему?
Мне нужно разрешить только буквы и некоторые символы. Я использую это регулярное выражение:Регулярное выражение разрешает запятые
([a-zA-Z '-_]*)$")
Но это также позволяет , ; : .
Почему?
дефис (-
) внутри класса символов обозначает диапазон, вы должны избежать этого с помощью обратной косой черты, изменив [a-zA-Z '-_]
на следующее:
[a-zA-Z '\-_]
Без этого движок регулярных выражений будет интерпретировать '-_
как диапазон персонажей из '
к _
, который будет включать в себя следующие символы (http://www.asciitable.com/):
' () * + , - ./0 1 2 3 4 5 6 7 8 9 : ; <=> ? @
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ]^_
Вы, вероятно, также хотят чтобы добавить ^
в начало и $
в конец вашего регулярного выражения, это начало и конец привязок строк, и они не позволят вашему регулярному выражению совместить только часть строки.
-1 Это также верно, потому что нет никаких ограничений $ и + для установки одного или нескольких символов. – Adidi
Я интерпретировал проблему OP как «регулярное выражение, соответствующее запятым», что было бы невозможно после выхода из дефиса. Во всяком случае, я добавил примечание о якорях в редактировании (и, кстати, я не тот, который отклонил ваш ответ). –
Если вы хотите совместить '-', вы также можете поместить его как незаменимый как самый первый символ в' [] 'like'/^ [- az] + $ /. Test ('a-little-thing') ' – neo
вы должны установить ^
на старте и $
в конце, чтобы заставить его быть только группа:
/^[a-zA-Z \'\-_]+$/.test('Adidi:') // false
почему -1?! Это правильный ответ ! '^ [a-zA-Z \ '\ -_] + $' – Adidi
Вы не начала матча до конца, вы могли бы попытаться вставить заголовок ''^(привязка для начала ввода). –