2

我正在使用RegularExpressionValidator控制

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

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

(ä,Ä,É,é,ö,Ö,ü,Ü,ß)

在网址中。允许这些字符的确切正则表达式应该是什么?

4

1 回答 1

1

我希望您知道使用正则表达式进行 URL 验证并不容易,因为 URL 有许多有效的变体。例如看这个问题

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

请参阅此处以在线检查 Regexr

不匹配

http://RegExr.com?2rjl6]

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

但它确实匹配

hhhhhhppth??????ht://stackoverflow.com

您在开头定义了一个字符组,[http(s)?://]这意味着匹配里面的任何字符(您可能想要(?:http(s)?://)and ?after wards 而不是*.

要回答您的问题:

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

[äÄÉéöÖüÜß]

像这样使用它

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

其他提示

字符组的-内部必须在开头或结尾,或者需要转义。

(s)?s?

于 2011-05-07T21:21:25.230 回答