我正在使用RegularExpressionValidator
控件
[http(s)?://]*([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?
正则表达式以验证Url。我需要允许德语字符
在网址中(A,A,E,E,O,O-,U,U,SS)
什么应该是正确的正则表达式来允许这些字符?
答案 0 :(得分:1)
我希望您知道使用正则表达式进行网址验证并不容易,因为网址有很多有效的变体。例如,见question。
首先你的正则表达式有几个缺陷(这只是在快速检查之后,可能还没有完成)
请参阅here for online check on Regexr
不符合
为什么在第一个点之后只允许\w
和-
?
但确实匹配
hhhhhhppth ?????? HT://stackoverflow.com
您可以在开头[http(s)?://]
定义一个字符组,这意味着匹配内部的任何字符(您可能希望在病房之后(?:http(s)?://)
和?
而不是*
。< / p>
回答你的问题:
创建一个包含这些字母的字符组,并将其放在您想要允许的位置。
[äÄÉéöÖüÜß]
像这样使用
(?:https?://)?([äÄÉéöÖüÜß\w-]+\.)+[äÄÉéöÖüÜß\w-]+(/[-äÄÉéöÖüÜß\w ./?%&=]*)?
其他提示
字符组内的-
必须位于开头或结尾,或者需要进行转义。
(s)?
是s?