Регулярное выражение неправильно соответствует - PullRequest
1 голос
/ 21 июня 2010

Я использовал следующее регулярное выражение в ASP.NET и Javascript:

[a-zA-ZöäüÖÄÜß0-9]{1}[a-zA-ZöäüÖÄÜß0-9_.\-]{2,14}[a-zA-ZöäüÖÄÜß0-9.!]{1}

Теперь я перехожу на ASP.NET MVC и проверяю свой код.Я считаю, что

'test'
%test

также совпадают.Это, вероятно, потому что не вся строка должна быть сопоставлена.И тест в рамках «теста» является действительным соответствием.

Как мне изменить RegEx, чтобы он соответствовал всей строке, а не только ее части?

Ответы [ 2 ]

4 голосов
/ 21 июня 2010

Если вы пытаетесь сопоставить целую строку, используйте якоря ^ и $:

^[a-zA-ZöäüÖÄÜß0-9][a-zA-ZöäüÖÄÜß0-9_.\-]{2,14}[a-zA-ZöäüÖÄÜß0-9.!]$

Примечание: я также отбросил {1}, поскольку он полностью избыточен как квантификаторпо умолчанию любой символ или класс символов соответствует только одному вхождению.Вы также можете сократить свои классы символов, используя модификатор без учета регистра.(/i в Javascript).

1 голос
/ 21 июня 2010
^[a-zA-ZöäüÖÄÜß0-9]{1}[a-zA-ZöäüÖÄÜß0-9_.\-]{2,14}[a-zA-ZöäüÖÄÜß0-9.!]{1}$

, где ^ соответствует началу, а $ концу строки (текст).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...