仓酷云

标题: ASP教程之正则表达式年夜全 [打印本页]

作者: 活着的死人    时间: 2015-1-16 23:39
标题: ASP教程之正则表达式年夜全
专业性的服务。有的ASP商提供垂直型的应用服务,针对某一特定行业提供应用服务。正则择要:搜集一些经常使用的正则表达式。

正则表达式用于字符串处置,表单考证等场所,有用高效,但用到时老是不太掌控,乃至常常要上彀查一番。我将一些经常使用的表达式保藏在这里,作备忘之用。本贴随时会更新。

婚配中笔墨符的正则表达式:[u4e00-u9fa5]

婚配双字节字符(包含汉字在内):[^x00-xff]

使用:盘算字符串的长度(一个双字节字符长度计2,ASCII字符计1)

String.prototype.len=function(){returnthis.replace([^x00-xff]/g,"aa").length;}

婚配空行的正则表达式:
[s|]*

婚配HTML标志的正则表达式:/<(.*)>.*</1>|<(.*)/>/

婚配首尾空格的正则表达式:(^s*)|(s*$)

使用:javascript中没有像vbscript那样的trim函数,我们就能够使用这个表达式来完成,以下:

String.prototype.trim=function()
{
returnthis.replace(/(^s*)|(s*$)/g,"");
}

使用正则表达式分化和转换IP地点:

上面是使用正则表达式婚配IP地点,并将IP地点转换成对应数值的Javascript程序:

functionIP2V(ip)
{
re=/(d+).(d+).(d+).(d+)/g//婚配IP地点的正则表达式
if(re.test(ip))
{
returnRegExp.$1*Math.pow(255,3))+RegExp.$2*Math.pow(255,2))+RegExp.$3*255+RegExp.$4*1
}
else
{
thrownewError("NotavalidIPaddress!")
}
}

不外下面的程序假如不必正则表达式,而间接用split函数来分化大概更复杂,程序以下:

varip="10.100.20.168"
ip=ip.split(".")
alert("IP值是:"+(ip[0]*255*255*255+ip[1]*255*255+ip[2]*255+ip[3]*1))

婚配Email地点的正则表达式:w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*

婚配网址URL的正则表达式:http://([w-]+.)+[w-]+(/[w-./?%&=]*)?

使用正则表达式往除字串中反复的字符的算法程序:[注:此程序不准确,缘故原由见本贴复兴]

vars="abacabefgeeii"
vars1=s.replace(/(.).*1/g,"$1")
varre=newRegExp("["+s1+"]","g")
vars2=s.replace(re,"")
alert(s1+s2)//了局为:abcefgi

我本来在CSDN上发贴追求一个表达式来完成往除反复字符的办法,终极没有找到,这是我能想到的最复杂的完成办法。思绪是利用后向援用掏出包含反复的字符,再以反复的字符创建第二个表达式,取到不反复的字符,二者串联。这个办法关于字符按次有请求的字符串大概不合用。

得用正则表达式从URL地点中提取文件名的javascript程序,以下了局为page1

s="http://www.9499.net/page1.htm"
s=s.replace(/(.*/){0,}([^.]+).*/ig,"$2")
alert(s)

使用正则表达式限定网页表单里的文本框输出内容:

用正则表达式限定只能输出中文:onkeyup="value=value.replace(/[^u4E00-u9FA5]/g,)"onbeforepaste="clipboardData.setData(text,clipboardData.getData(text).replace(/[^u4E00-u9FA5]/g,))"

用正则表达式限定只能输出全角字符:onkeyup="value=value.replace(/[^uFF00-uFFFF]/g,)"onbeforepaste="clipboardData.setData(text,clipboardData.getData(text).replace(/[^uFF00-uFFFF]/g,))"

用正则表达式限定只能输出数字:onkeyup="value=value.replace(/[^d]/g,)"onbeforepaste="clipboardData.setData(text,clipboardData.getData(text).replace(/[^d]/g,))"

用正则表达式限定只能输出数字和英文:onkeyup="value=value.replace(/[W]/g,)"onbeforepaste="clipboardData.setData(text,clipboardData.getData(text).replace(/[^d]/g,))"





正则表达式,相干链接
http://blog.csdn.net/laily/category/19548.aspx
http://blog.csdn.net/laily/archive/2004/06/30/30525.aspx微软的正则表达式教程(五):选择/编组和后向援用

http://blog.csdn.net/laily/archive/2004/06/30/30522.aspx微软的正则表达式教程(四):限制符和定位符

http://blog.csdn.net/laily/archive/2004/06/30/30517.aspx微软的正则表达式教程(三):字符婚配

http://blog.csdn.net/laily/archive/2004/06/30/30514.aspx微软的正则表达式教程(二):正则表达式语法和优先权按次

http://blog.csdn.net/laily/archive/2004/06/30/30511.aspx微软的正则表达式教程(一):正则表达式简介

http://blog.csdn.net/laily/archive/2004/06/30/30360.aspx小程序高文为:初级查找/交换、正则表达式实习器、Javascript剧本程序调试器

http://blog.csdn.net/laily/archive/2004/06/24/25872.aspx典范正则表达式

正则表达式,正轨表达式,正则表达式婚配,正则表达式语法,形式婚配,正轨表达式婚配javascript正则表达式ASP正则表达式ASP.NET正则表达式C#正则表达式JSP正则表达式PHP正则表达式VB.NET正则表达式VBSCript正则表达式编程delphi正则表达式jscript


正则表达式regularexpression
正则表达式RegExp
形式pattern
婚配Match
.NET定名空间:System.Text.RegularExpression




增补:
^d+$  //婚配非负整数(正整数+0)
^[0-9]*[1-9][0-9]*$  //婚配正整数
^((-d+)|(0+))$  //婚配非正整数(负整数+0)
^-[0-9]*[1-9][0-9]*$  //婚配负整数
^-?d+$    //婚配整数
^d+(.d+)?$  //婚配非负浮点数(正浮点数+0)
^(([0-9]+.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*.[0-9]+)|([0-9]*[1-9][0-9]*))$  //婚配正浮点数
^((-d+(.d+)?)|(0+(.0+)?))$  //婚配非正浮点数(负浮点数+0)
^(-(([0-9]+.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*.[0-9]+)|([0-9]*[1-9][0-9]*)))$  //婚配负浮点数
^(-?d+)(.d+)?$  //婚配浮点数
^[A-Za-z]+$  //婚配由26个英笔墨母构成的字符串
^[A-Z]+$  //婚配由26个英笔墨母的年夜写构成的字符串
^[a-z]+$  //婚配由26个英笔墨母的小写构成的字符串
^[A-Za-z0-9]+$  //婚配由数字和26个英笔墨母构成的字符串
^w+$  //婚配由数字、26个英笔墨母大概下划线构成的字符串
^[w-]+(.[w-]+)*@[w-]+(.[w-]+)+$    //婚配email地点
^[a-zA-z]+://婚配(w+(-w+)*)(.(</p>asp可以轻松地实现对页面内容的动态控制,根据不同的浏览者,显示不同的页面内容。而浏览者一点觉察不出来,就像为他专门制作的页面一样。使用各种各样的组件,asp可以完成无比强大的功能。
作者: 柔情似水    时间: 2015-1-20 10:53
代码逻辑混乱,难于管理:由于ASP是脚本语言混合html编程,所以你很难看清代码的逻辑关系,并且随着程序的复杂性增加,使得代码的管理十分困难,甚至超出一个程序员所能达到的管理能力,从而造成出错或这样那样的问题。
作者: 金色的骷髅    时间: 2015-1-29 06:50
我想问如何掌握学习节奏(先学什么再学什么)最好详细点?
作者: 小魔女    时间: 2015-2-2 13:05
掌握asp的特性而且一定要知道为什么。
作者: 再见西城    时间: 2015-2-3 17:44
虽然ASP也有很多网络教程。但是这些都不系统。都是半路出家,只是从一个例子告诉你怎么用。不会深入讨论,更不会将没有出现在例子里的方法都一一列举出来。
作者: 山那边是海    时间: 2015-2-9 03:51
代码逻辑混乱,难于管理:由于ASP是脚本语言混合html编程,所以你很难看清代码的逻辑关系,并且随着程序的复杂性增加,使得代码的管理十分困难,甚至超出一个程序员所能达到的管理能力,从而造成出错或这样那样的问题。
作者: 精灵巫婆    时间: 2015-2-26 20:51
另外因为asp需要使用组件,所以了解一点组件的知识(ADODB也是组件)
作者: 愤怒的大鸟    时间: 2015-3-8 17:39
代码的可重用性差:由于是面向结构的编程方式,并且混合html,所以可能页面原型修改一点,整个程序都需要修改,更别提代码重用了。
作者: 蒙在股里    时间: 2015-3-16 08:10
尽管MS自己讲C#内核中更多的象VC,但实际上我还是认为它和Java更象一些吧。首先它是面向对象的编程语言,而不是一种脚本,所以它具有面向对象编程语言的一切特性,比如封装性、继承性、多态性等等,这就解决了刚才谈到的ASP的那些弱点。
作者: 透明    时间: 2015-3-22 21:11
我想问如何掌握学习节奏(先学什么再学什么)最好详细点?




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2