使用有效的端口号和查询字符串验证URL

时间:2013-11-26 09:40:15

标签: javascript asp.net regex validation

我想检查文本框是否包含使用正则表达式的有效URL。有效的网址可以如下。

http://www.google.com
https://www.google.com
http://clrs.mlslist.com:6103/
http://clrs.mlslist.com:6103/premium/login
http://reso.mlslisting.com/premium/login?rets-version=rets/1.5

有人可以帮我构建ASP RegularExpressionValidator的验证表达式吗?

2 个答案:

答案 0 :(得分:1)

这是一个非常宽松的正则表达式,可以满足您的需求:

^https?://[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*\.\w+(:\d+)?(/[\w-=.?]+)*/?$

需要http://https://

需要一组字符,后跟可选的多个字符组(例如googlewww.googleimg1.srv2.google)。

需要另一个.后跟一组字符(例如.com)。

允许可选端口(例如:8080

从那里开始允许以-=.? s分隔的单词/数字字符和符号/(例如/premium/login?rets-version=rets/1.5

RegExr Example

答案 1 :(得分:0)

使用RegularExpressionValidator并将表达式设置为如下所示:

  

^([\ S \ s]的{0,4})$

将4替换为您想要的长度(最大)

示例

<asp:TextBox id="txtbx" Runat="server" />

<asp:RegularExpressionValidator id="RegularExpressionValidator1" runat="server" 
        ErrorMessage="Error: RegularExpressionValidator" 
        ValidationExpression="^([\S\s]{0,4})$" 
        ControlToValidate="txtbx" />

<asp:Button ID="Button1" runat="server" Text="Button" />