一个正则表达式问题:检测URL是指向文件(http://....file.zip)的url

iProgram 2003-01-08 11:26:30
hi,大家好。
我想得到这样一个js。它可以检测表单form1的文本框txtFile的内容,当txtFile内容为一下情况时返回false,否则返回true。
情况:
1. txtFile为空
2. txtFile包含?、 &、 .htm、.html、.asp、.php等字符或字符串
3. txtFile不是以.zip/.exe/.rar结尾(不区分大小写)

即要求这个txtFile是一个合法的文件下载URL。

上述三条避免下述情况:
http://www.blahblahblah.com/fadefile.php?id=123.zip
...全文
188 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
iProgram 2003-01-08
  • 打赏
  • 举报
回复
补充一点:必须是以http://开头(不区分大小写)
iProgram 2003-01-08
  • 打赏
  • 举报
回复
到底听谁的,先放着晒晒吧,明天我亲自试试,谢谢各位。
zhigangxie 2003-01-08
  • 打赏
  • 举报
回复
<script>
function testThisURL(strVal){
var s = strVal.toLowerCase(); // 转换小写
// txtFile为空: (^[\s]+$)
// txtFile包含?、 &、 .htm、.html、.asp、.php等字符或字符串: (\?)|(\&)|(\.htm)|(\.html)|(\.asp)|(\.php)
// txtFile以.zip/.exe/.rar结尾(不区分大小写): (\.zip)|(\.exe)|(\.rar)$
// 以http://开头 ^http:\/{2}
var r = false;
if(s.match(/^[\s]+$/))r=false; // 不为空
else if(s.match(/(\?)|(\&)|(\.htm)|(\.html)|(\.asp)|(\.php)/))r=false; // 不包含它们
else if(!s.match(/^http:\/{2}.+(\.zip)|(\.exe)|(\.rar)$/))r=false; // 必须包含 http:// 必须以他们结尾
return r;
}

</script>
qiushuiwuhen 2003-01-08
  • 打赏
  • 举报
回复
<script>
function test(url){
return(/^http:\/\/[\w\.\/]+\.(zip|exe|rar)$/.test(url));
}
alert(test("http://www.blahblahblah.com/fadefile.php?id=123.zip"));
alert(test("http://www.blahblahblah.com/123.zip"));
</script>
saucer 2003-01-08
  • 打赏
  • 举报
回复
go to
http://www.regexlib.com/Default.aspx

type "url" in the keyword textbox, click on "Search" button, pick one you like
wangxj0600 2003-01-08
  • 打赏
  • 举报
回复
一样一个正则可不可以?

87,993

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧