我正准备参加考试,而且我仍然坚持使用RegEx验证。我想验证一个输入的网站。我在这里寻求解决方案,但没有找到任何能满足我需求的解决方案。例如,应验证这些链接:
这不应该:
目前我得到的最接近的表达是:
http://(www\.)([^\.]+)(\.com)(/([^\.]+)(\.html|\.aspx))?
它可能有点脏,因为这是我与正则表达式的第一笔交易
但是在regexTester中它突出显示/接受(我正在使用正则表达式):
我的正则表达式应该改变什么?
P.S。对不起这么长的故事,我只是一个初学者。
答案 0 :(得分:0)
我看到的唯一区别是它是否有多个顶级域名(如co.uk或com.au)。
因此,我检查的是:
^.*www.[a-zA-Z]*.[a-zA-Z]{1,3}/([a-zA-Z].*|)
实际上只检查它是否只有一个TLD,并且可选择在URL中有更多部分。
我不验证它是否以HTTP://开头,因为这不是URL的实际要求。我也不检查文档类型(html或aspx),因为它可以是变量,甚至也可以命名。