asp.net允许在Url中使用德语字符

时间:2011-05-07 12:21:57

标签: asp.net regex url-validation

我正在使用RegularExpressionValidator控件

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

正则表达式以验证Url。我需要允许德语字符

  

(A,A,E,E,O,O-,U,U,SS)

在网址中

什么应该是正确的正则表达式来允许这些字符?

1 个答案:

答案 0 :(得分:1)

我希望您知道使用正则表达式进行网址验证并不容易,因为网址有很多有效的变体。例如,见question

首先你的正则表达式有几个缺陷(这只是在快速检查之后,可能还没有完成)

请参阅here for online check on Regexr

不符合

  

http://RegExr.com?2rjl6]

为什么在第一个点之后只允许\w-

但确实匹配

  

hhhhhhppth ?????? HT://stackoverflow.com

您可以在开头[http(s)?://]定义一个字符组,这意味着匹配内部的任何字符(您可能希望在病房之后(?:http(s)?://)?而不是*。< / p>

回答你的问题:

创建一个包含这些字母的字符组,并将其放在您想要允许的位置。

[äÄÉéöÖüÜß]

像这样使用

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

其他提示

字符组内的-必须位于开头或结尾,或者需要进行转义。

(s)?s?