我正在使用RegularExpressionValidator
控制
[http(s)?://]*([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?
正则表达式来验证 URL。我需要允许德语字符
(ä,Ä,É,é,ö,Ö,ü,Ü,ß)
在网址中。允许这些字符的确切正则表达式应该是什么?
我正在使用RegularExpressionValidator
控制
[http(s)?://]*([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?
正则表达式来验证 URL。我需要允许德语字符
(ä,Ä,É,é,ö,Ö,ü,Ü,ß)
在网址中。允许这些字符的确切正则表达式应该是什么?
我希望您知道使用正则表达式进行 URL 验证并不容易,因为 URL 有许多有效的变体。例如看这个问题。
首先你的正则表达式有几个缺陷(这只是在快速检查之后,可能不完整)
不匹配
为什么只允许在第一个点之后\w
?-
但它确实匹配
hhhhhhppth??????ht://stackoverflow.com
您在开头定义了一个字符组,[http(s)?://]
这意味着匹配里面的任何字符(您可能想要(?:http(s)?://)
and ?
after wards 而不是*
.
要回答您的问题:
使用这些字母创建一个字符组并将其放在您想要允许的位置。
[äÄÉéöÖüÜß]
像这样使用它
(?:https?://)?([äÄÉéöÖüÜß\w-]+\.)+[äÄÉéöÖüÜß\w-]+(/[-äÄÉéöÖüÜß\w ./?%&=]*)?
其他提示
字符组的-
内部必须在开头或结尾,或者需要转义。
(s)?
是s?