我们有时候需要对用户输入的网站(URL)进行有效性检查,

 代码如下 复制代码

function CheckUrl(str) {
    var RegUrl = new RegExp();
    RegUrl.compile("^[A-Za-z]+://[A-Za-z0-9-_]+\.[A-Za-z0-9-_%&?/.=]+$");
    if (!RegUrl.test(str)) {
        return false;
    }
    return true;
}

不止从格式上,更要检查用户输入的网址是否真正有效。检查URL可以参考js正则表达式验证网址格式,检查URL有效的方法有很多,例如你可以使用jQuery进行检查,

本篇将给出一段使用C#判断网址是否有效的代码。

下边是检查URL有效性的方法:

 代码如下 复制代码

private bool UrlCheck(string strUrl)
{
    if (!strUrl.Contains("http://") && !strUrl.Contains("https://"))
    {
        strUrl = "http://" + strUrl;
    }
    try
    {
        HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create(strUrl);
        myRequest.Method = "HEAD";
        myRequest.Timeout = 10000;  //超时时间10秒
        HttpWebResponse res = (HttpWebResponse)myRequest.GetResponse();
        return (res.StatusCode == HttpStatusCode.OK);
    }
    catch
    {
        return false;
    }
}

使用时,我们只需传入Url即可进行有效性检查,使用这个方法时记得加上System.Net命名空间。

 代码如下 复制代码

if (!UrlCheck("http://www.111cn.net"))
{
    //删除操作
}

是的,在本站中用户可以输入自己的网址,但有的用户不知道是为了测试还是什么,输入了一眼就能看出是访问不了的链接。所以有必要对用户输入的网址做个检查,不然无效链接太多的话会影响网站的权重,更重要的是过多的无效链接会影响其他用户的体验,因为谁也不想点击一个无效的链接。

可以参考jQuery  Ajax,

以下5个方法执行一般Ajax请求的简短形式,在处理复杂的Ajax请求时应该使用jQuery.ajax().

1.load(url,[data],[callback])

载入远程HTML文件代码并插入至DOM中,默认使用GET方式,传递参数时自动转换为POST方式。

◦url:要载入的远程url地址
◦data:发送至服务器的key/value 数据
◦callback:载入成功时的回调函数

示例代码如下:

 代码如下 复制代码

//无参数、无回调函数
$("#showload").load("load.htm");
//无回调函数
$("#showload").load("load.htm", { "para": "para-value" });
$("#showload").load("load.htm", { "para": "para-value" },
    function() {
        //处理
    })

 

asp.net C#检查URL是否有效的更多相关文章

  1. 转载MSDN 在ASP.NET 中执行 URL 重写

    转载文章原网址 http://msdn.microsoft.com/zh-cn/library/ms972974.aspx 摘要:介绍如何使用 Microsoft ASP.NET 执行动态 URL 重 ...

  2. asp.net ajax检查用户名是否存在代码

    原文  asp.net ajax检查用户名是否存在代码 用户注册时,我们经常需要检查用户名是否存在,本文就是实现无刷新验证用户名 打开开发环境VS 2005,新建项目(或打开现有项目),新建一个Web ...

  3. Asp.Net MVC2.0 Url 路由入门---实例篇

    本篇主要讲述Routing组件的作用,以及举几个实例来学习Asp.Net MVC2.0 Url路由技术. 接着上一篇开始讲,我们在Global.asax中注册一条路由后,我们的请求是怎么转到相应的Vi ...

  4. Asp.net中Request.Url的各个属性对应的意义介绍

    Asp.net中Request.Url的各个属性对应的意义介绍 本文转载自 http://www.jb51.net/article/30254.htm 网络上关于Request.Url的说明已经很多也 ...

  5. 【转载】ASP.NET MVC重写URL制作伪静态网页,URL地址以.html结尾

    在搜索引擎优化领域,静态网页对于SEO的优化有着很大的好处,因此很多人就想把自己的网站的一些网页做成伪静态.我们现在在网络上发现很多博客网站.论坛网站.CMS内容管理系统等都有使用伪静态这一种情况,伪 ...

  6. Asp.Net MVC2.0 Url 路由入门---实例篇 【转】

    本篇主要讲述Routing组件的作用,以及举几个实例来学习Asp.Net MVC2.0 Url路由技术. 接着上一篇开始讲,我们在Global.asax中注册一条路由后,我们的请求是怎么转到相应的Vi ...

  7. (java)Jsoup爬虫学习--获取网页所有的图片,链接和其他信息,并检查url和文本信息

    Jsoup爬虫学习--获取网页所有的图片,链接和其他信息,并检查url和文本信息 此例将页面图片和url全部输出,重点不太明确,可根据自己的需要输出和截取: import org.jsoup.Jsou ...

  8. ASP.NET中的URL编码解码(转)

    在对URL进行编码时,该用哪一个?这两都使用上有什么区别吗?测试: string file="文件上(传)篇.doc";string Server_UrlEncode=Server ...

  9. 【转】Asp.Net MVC4 之Url路由

    MVC4常见路由的处理方式 //直接方法重载+匿名对象 routes.MapRoute( name: "Default", url: "{controller}/{act ...

随机推荐

  1. apache win openssl

    Rubayat Hasan Software Development, Music, Web Design, life, thoughts…   Home Portfolio Projects Con ...

  2. Oracle数据库如何授权收费(Database Licensing)

    Oracle软件本身是免费的,所以任何人都可以从Oracle官方网站下载并安装Oracle的数据库软件,收费的是License,即软件授权,如果数据库用于商业用途,就需要购买相应Oracle产品的Li ...

  3. PL/pgSQL的 RETURN NEXT例子

    从网上找到例子: 可以说,RETURN NEXT要用在循环中: 例子一: 数据准备: CREATE TABLE foo (fooid INT, foosubid INT, fooname TEXT); ...

  4. my-view-isnt-reflecting-changes-ive-made-to-the-underlying-tables

    FROM http://sqlstudies.com/2013/01/20/my-view-isnt-reflecting-changes-ive-made-to-the-underlying-tab ...

  5. 检测Insert、Capslock、NumLock、ScrollLock状态键的状态

    unit Unit1;interfaceuses  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, ...

  6. Java中Queue类实现

    原先在java编程中,Queue的实现都是用LinkedList Queue queue = new LinkedList(); 但正如jdk中所说的那样: 注意,此实现不是同步的.如果多个线程同时访 ...

  7. visualvm连接服务器jvm进行监控

    本地环境,mac: 服务器环境ubuntu: 直接运行jstatd命令,提示 Could not create remote object access denied ("java.util ...

  8. 利用mmap /dev/mem 读写Linux内存

    转载:http://blog.csdn.net/zhanglei4214/article/details/6653568 使用 hexedit /dev/mem 可以显示所有物理内存中的信息. 运用m ...

  9. DataBase 之 表操作

    1:向表中添加字段 Alter table [表名] add [列名] 类型 2: 删除字段 Alter table [表名] drop column [列名] 3: 修改表中字段类型 (可以修改列的 ...

  10. 2014年GCT考试报名时

    第一阶段: 网上报名时间预计为2014年6月20日至2014年7月10日. 考生可在6月20日后在中国学位与研究生教育信息网(http://www.chinadegrees.cn/)网站报名.网报时按 ...