2010-02-17 3 views
7

NET. Я создал валидатор регулярных выражений для проверки специальных символов, потому что я не хочу никаких специальных символов в имени пользователя. Ниже приведен кодКак проверить специальные символы с помощью регулярного выражения

Regex objAlphaPattern = new Regex(@"[[email protected]]"); 
      bool sts = objAlphaPattern.IsMatch(username); 

Если я обеспечиваю имя пользователя в $%^& asghf то валидатор дает в недопустимый формат данных, который является результатом я хочу, но если я обеспечиваю S23 данных _ @ .-^&()%^$ #, то мой валидатор должен блокировать данные, но мой валидатор позволяет данные, которые неправильно

Так как не допускать каких-либо специальных символов, за исключением аз AA 0-9 _ @ .-

Благодарности Сунил Кумар Sahoo

ответ

14

Есть несколько вещей, которые не соответствуют вашему выражению. Сначала у вас нет символа начала строки ^ и символа конца строки $ в начале и конце выражения, что означает, что ему нужно найти совпадение где-нибудь внутри вашей строки.

Во-вторых, вы ищете только одного персонажа в настоящий момент. Чтобы заставить матч всех символов, которые вы должны будете использовать * Вот что должно быть:

Regex objAlphaPattern = new Regex(@"^[[email protected]]*$"); 
bool sts = objAlphaPattern.IsMatch(username); 
+0

Thanks Spencer Ruport, Действительно, ваш ответ очень помог мне. Я сделал большую ошибку, тогда вы решили мою проблему. –

+3

Рад помочь. В какой-то момент мы все совершили большую ошибку. –

0

Измените свое регулярное выражение на ^[[email protected]]+$. Здесь ^ обозначает начало строки, $ - это конец строки.

+1

Я не уверен, что это считается особым персонажем, когда он находится внутри скобок. Я мог ошибаться. –

1

Ваш шаблон проверяет, только если данная строка содержит какой-либо «неспециальный» характер; он не исключает нежелательных символов. Вы хотите изменить две вещи; сделать это проверить, что вся строка содержит только допустимые символы, а также сделать его проверить более одного символа:

^[[email protected]]+$ 

Добавлено ^ перед рисунком, чтобы сделать его начать соответствие в начале строки. Также добавлен +$ после, +, чтобы убедиться, что в строке есть хотя бы один символ, и $, чтобы убедиться, что строка сопоставлена ​​до конца.

Смежные вопросы