asp.net позволяет немецкие символы в URL - PullRequest
2 голосов
/ 07 мая 2011

Я использую RegularExpressionValidator контроль с

[http(s)?://]*([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?

регулярное выражение для проверки URL. Мне нужно разрешить немецкие символы

(A, A, E, E, O, O, U, U, р)

в урл. Каким должно быть точное регулярное выражение, чтобы разрешить эти символы?

1 Ответ

1 голос
/ 08 мая 2011

Надеюсь, вы знаете, что использовать регулярные выражения для проверки URL нелегко, поскольку существует множество допустимых вариантов URL. Смотрите, например, этот вопрос .

Во-первых, у вашего регулярного выражения есть несколько недостатков (это только после быстрой проверки, возможно, не полной)

См. здесь для онлайн-проверки Regexr

Не соответствует

http://RegExr.com? 2rjl6]

Почему вы разрешаете только \w и - после первой точки?

но оно соответствует

hhhhhhppth ?????? ХТ: //stackoverflow.com

Вы определяете группу символов в начале [http(s)?://], что означает совпадение с любым из символов внутри (Вы, вероятно, хотите (?:http(s)?://) и ? после вардов вместо *.

Чтобы ответить на ваш вопрос:

Создайте группу символов с этими буквами и разместите ее там, где вы хотите, чтобы она была разрешена.

[äÄÉéöÖüÜß]

Используйте это так

(?:https?://)?([äÄÉéöÖüÜß\w-]+\.)+[äÄÉéöÖüÜß\w-]+(/[-äÄÉéöÖüÜß\w ./?%&=]*)?

Другие подсказки

- внутри группы символов должно быть в начале или в конце или должно быть экранировано.

(s)? is s?

...