使用ASP.Net Regular Expression Validator进行URL验证时出现问题

时间:2011-05-12 12:29:25

标签: asp.net regex validation

我正在尝试使用ASP.Net Regular Expression Validator来验证URL字段。网址为www.tachibana.co.jp/tokyosys.htm。使用的验证表达式为ValidationExpression="http(s)?://([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?",但这不起作用。正则表达式或URL有什么问题吗?

规则如下。

  1. 它应该验证即使(http或 是否包括https)。
  2. 之前还应修剪网址 验证
  3. 它还应该验证子 域名网址
  4. 它还应该验证URL的来源 域或子域上的文件。
  5. 感谢

4 个答案:

答案 0 :(得分:3)

问题是你的正则表达式

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

希望该网址以http://https://开头。此外,字符类中的破折号错位。

编辑:既然您已经发布了规则,我建议:

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

成功匹配后,第1组将包含域,第2组将包含文件路径(如果存在)。

答案 1 :(得分:0)

^(?i)(http|ftp|https)\://[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}(/\S*)?$

答案 2 :(得分:0)

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

答案 3 :(得分:0)

var re = /(http(s)?:\\)?([\w-]+\.)+[\w-]+[.com|.in|.org]+(\[\?%&=]*)?/
if (re.test(txt)) {
alert('Valid URL')
}

您可以在com,in,org的最后一个字段中添加所需的域