`
qxmcool
  • 浏览: 90872 次
  • 性别: Icon_minigender_1
  • 来自: 石家庄
社区版块
存档分类
最新评论

正则表达式处理很复杂的包含多个URL及其包含中文的字符串

阅读更多
自己写的留着自己用的 如果能看懂这个正则的写法的话就可以直接用了

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
</head>

<script language="JavaScript">

function IsURL(str_url){
alert(str_url);
str_url=str_url.toLowerCase();
  var strRegex = "^([\w\u4E00-\u9FA5\uF900-\uFA2D])*"+"<(S*?)[^>]*>.*?|<.*? />"+"[a-zA-Z]*((http)?://)"
  + "?(([0-9a-z_!~*'().&=+$%-]+: )?[0-9a-z_!~*'().&=+$%-]+@)?"+ "(([0-9]{1,3}\.){3}[0-9]{1,3}"+ "|"+ "([0-9a-z_!~*'()-]+\.)*"+ "([0-9a-z][0-9a-z-]{0,61})?[0-9a-z]\."+"[a-z]{2,6})"  + "(:[0-9]{1,4})?"+ "((/?)|"+ "((/?)[\w\u4E00-\u9FA5\uF900-\uFA2D]*(/?))"+ "(/[0-9a-z_!~*'().;?:@&=+$,%#-]+)+/?)"+ "<(S*?)[^>]*>.*?|<.*? />$";
var tt = str_url.match(strRegex);
var re=new RegExp(strRegex);

alert("!!!!!!!!!!");
//if(tt != null){
for(int i = 0;i<tt.length;i++){
if (re.test(str_url))
{
alert(tt[i]);
return (true);
      }
else
{
alert("NO");
return (false);
      }
}
//} 
    }

function aaa(str_url){
//alert(str_url);
str_url=str_url.toLowerCase();
  var strRegex = "^([\w\u4E00-\u9FA5\uF900-\uFA2D])*"+
  "<(S*?)[^>]*>.*?|<.*? />"+
  "[a-zA-Z]*((https|http|ftp|rtsp|mms)?://)"
  + "?(([0-9a-z_!~*'().&=+$%-]+: )?[0-9a-z_!~*'().&=+$%-]+@)?" //ftp的user@
        + "(([0-9]{1,3}\.){3}[0-9]{1,3}" // IP形式的URL- 199.194.52.184
        + "|" // 允许IP和DOMAIN(域名)
        + "([0-9a-z_!~*'()-]+\.)*" // 域名- www.
        + "([0-9a-z][0-9a-z-]{0,61})?[0-9a-z]\." // 二级域名
        + "[a-z]{2,6})" // first level domain- .com or .museum
        + "(:[0-9]{1,4})?" // 端口- :80
+ "((/?)|"
+ "((/?)[\w\u4E00-\u9FA5\uF900-\uFA2D]*(/?))"//中文路径
        + "(/[0-9a-z_!~*'().;?:@&=+$,%#-]+)+/?)"
+ "<(S*?)[^>]*>.*?|<.*? />$";

        var re=new RegExp(strRegex);
        if (re.test(str_url)){
alert(re);
            return (true);
        }else{
            return (false);
        }
    }

function t(regest){
//var regest = "<img src=http://www.baidu.com>";
regest=regest.toLowerCase();
tep = "^<?[img]+>?$";
var temp = new RegExp(tep);
if(temp.test()){
alert(temp);
return(true);
}else{
//alert("不匹配");
return(false);
}
}
</script>


<body>
测试的串
<hr>
<form action="#" method="post">
测试1:<textarea name="text" value="" cols="100" rows="10" onmouseout="IsURL(this.value)"></textarea><br /><br />
测试2:<textarea name="text" value="" cols="100" rows="10" onmouseout="t(this.value)"></textarea>
</form>
</body>
</html>
分享到:
评论

相关推荐

    精通正则表达式~~~

    作为正则表达式的字符串... 101 字符编码... 105 正则模式和匹配模式... 110 常用的元字符和特性... 113 字符表示法... 115 字符组及相关结构... 118 锚点及其他“零长度断言” 129 注释和模式量词... 135 ...

    正则表达式

    当一个正则表达式成功地和目标字符串相匹配时,可以从目标串中抽出和括号中的子模式相匹配 的部分.例如,假定我们正在检索的模式是一个或多个字母后面跟随一位或多位数字,那么我们可以使用模式 / [a-z] + \ d+/.但是...

    正则表达式经典实例

    本书提供了100多个实例,以帮助读者使用正则表达式处理数据和文本。即使有经验的用户也经常会遇到性能不佳、误报、漏报等让人挠头的错误,本书对于如何使用正则表达式来解决一些常见的问题给出了按部就班的解决方案...

    正则表达式经典实例.pdf

    本书提供了100多个实例,以帮助读者使用正则表达式处理数据和文本。即使有经验的用户也经常会遇到性能不佳、误报、漏报等让人挠头的错误,本书对于如何使用正则表达式来解决一些常见的问题给出了按部就班的解决方案...

    java script 正则表达式验证大全

    评注:可以用来计算字符串的长度(一个双字节字符长度计2,ASCII字符计1) 匹配空白行的正则表达式:ns*r 评注:可以用来删除空白行 匹配HTML标记的正则表达式:(S*?)[^&gt;]*&gt;.*?|*? /&gt; 评注:网上流传的版本太糟糕,...

    Java-PHP-C#

    正如上面说的,正则表达式看起来非常复杂,让人害怕,大多数的PHP初学者都会跳过这里,继续下面的学习,但是PHP中的正则表达式有着可以利用模式匹配找到符合条件的字符串、判断字符串是否合乎条件或者用指定的字符...

    Tcl_TK编程权威指南pdf

    第4章 tcl中的字符串处理 string命令 append命令 format命令 scan命令 binary命令 相关章节 第5章 tcl列表 tcl列表 构建列表 获取列表元素 修改列表 搜索列表 对列表进行排序 split命令 join命令 ...

    C++网络爬虫项目

    队、出队操作,通过统一资源定位符过滤器排重,同时支持基于正则表达式的 统一资源定位符抽取功能。 2.2.6. 套接字(Socket) 发送/接收超文本传输协议请求/响应,发送成功将套接字描述符加入多路I/O, 接收成功抽取...

    JavaScript对象验证库js-validator.zip

    这里的条件可以是多个域和值,它们之间的关系为“与”。required_with:foo,bar,...如果给定的域之中任何一个存在的话,验证域必须存在。required_with_all:foo,bar,...仅当所有给定的域存在时,验证域必须存在。...

    PHP开发实战1200例(第1卷).(清华出版.潘凯华.刘中华).part1

    实例110 通过正则表达式对字符串进行匹配查找 141 实例111 通过IP地址查找主机所在地 142 实例112 解决用substr()函数对中文字符串截取时出现乱码的问题 143 实例113 字符串与HTML标记相互转换 144 实例114 运用...

    PHP开发实战1200例(第1卷).(清华出版.潘凯华.刘中华).part2

    实例110 通过正则表达式对字符串进行匹配查找 141 实例111 通过IP地址查找主机所在地 142 实例112 解决用substr()函数对中文字符串截取时出现乱码的问题 143 实例113 字符串与HTML标记相互转换 144 实例114 运用...

    freemarker总结

    有一种特殊的字符串称为raw字符串,被认为是纯文本,其中的\和{等不具有特殊含义,该类字符串在引号前面加r,下面是一个例子: ${r"/${data}"year""}屏幕输出结果为:/${data}"year" 转义 含义 ...

    PHP基础教程 是一个比较有价值的PHP新手教程!

    如果你为变量var赋值为一个字符串,那么它变成了一个字符串。如果你又为它赋了整数值,那么它就变成了整数。" $foo = "0"; // $foo是字符串(ASCII 48) $foo++; // $foo是字符串"1" (ASCII 49) $foo += 1; // $foo...

    PHP3程序设计

    尤其值得注意的是,书中使用了多个“中场”章节,以便在学习过一定知识之后,通过实际例子来对所学的知识进行巩固,这些章节介绍的内容具有很强的实用价值。因此本书不仅对Web编程的入门者,即使对于有一定经验的Web...

    asp.net知识库

    ADO.NET 2.0 大批量数据操作和多个动态的结果集 ADO.NET 2.0 异步处理 在ASP.NET中使用WINDOWS验证方式连接SQL SERVER数据库 改进ADO.Net数据库访问方式 ASP.NET 2.0 绑定高级技巧 简单实用的DataSet更新数据库的类+...

Global site tag (gtag.js) - Google Analytics