互联网博客
http://internet.blog.enorth.com.cn >复制 >收藏本站
首页 IT技术(99) 音视频(7) 汽车(6) 搜索引擎(2) 我的日志(34) 歌词(12) James(19) 笑话(10) Blog技术(4) 诗词歌赋(7)

北方博客 > 首页 > 常用的匹配正则表达式和实例
Google
3上一篇: [原创]使用Apache模块mod_deflate加快页面打开速度 下一篇: mysql数据导入导出命令4
[IT技术]常用的匹配正则表达式和实例
Tags: 正则表达式 regexp

匹配中文字符的正则表达式: [\u4e00-\u9fa5]

匹配双字节字符(包括汉字在内):[^\x00-\xff]

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

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

匹配空行的正则表达式:\n[\s| ]*\r

匹配HTML标记的正则表达式:/<(.*)>.*<\/\1>|<(.*) \/>/

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

应用:javascript中没有像vbscript那样的trim函数,我们就可以利用这个表达式来实现,如下:

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

利用正则表达式分解和转换IP地址:

下面是利用正则表达式匹配IP地址,并将IP地址转换成对应数值的Javascript程序:

function IP2V(ip)
{
re=/(\d+)\.(\d+)\.(\d+)\.(\d+)/g //匹配IP地址的正则表达式
if(re.test(ip))
{
return RegExp.$1*Math.pow(255,3))+RegExp.$2*Math.pow(255,2))+RegExp.$3*255+RegExp.$4*1
}
else
{
throw new Error("Not a valid IP address!")
}
}

不过上面的程序如果不用正则表达式,而直接用split函数来分解可能更简单,程序如下:

var ip="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- ./?%&=]*)?

利用正则表达式去除字串中重复的字符的算法程序:[注:此程序不正确,原因见本贴回复]

var s="abacabefgeeii"
var s1=s.replace(/(.).*\1/g,"$1")
var re=new RegExp("["+s1+"]","g")
var s2=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://internet.blog.enorth.com.cn/article/56715.shtml


allenzz7 | 2006-04-26 10:46


发表评论
 
昵称
主页
标题
内容
算式的解
看不清校验算式?
 



 


公告

抗震救灾

众志成城

站内搜索

最新日志

linux 中文显示乱码解决办法
国足欢迎你
A780的快捷键图标设置
Jfreechart中画双Y坐标的折线图
在dwr的回调函数中传递多个参数
Lemon Tree
去掉jsessionid
Windows media encoder及其SDK编程说明
保留weblogic中jsp编译后生成的java文件
行为艺术家扮“房奴”抗议房产商(图)
DWR 调用返回值方法
民间节油“秘笈” “节油王”道出节油六高招
开车十五年心得!真真实实的26条教训!
ChannelSocket INFO: connection timeout reached
杭州干部徐新贤死了都要爱!
创业前请回答这些问题
Linux下让编译安装的Apache自动启动
IllegalStateException: getOutputStream() 异常的解决方案
LINUX下配置系统环境变量
Servlet图像处理 X11错误解决方法
解决winxp搜索不到文件中的某个字或词组的问题
夜的第七章
Linux下两种自动启动Tomcat的方法
使用mod_usertrack跟踪用户
apache2.0 prefork和worker模块性能调优

网友评论

Re:Apache-WebLogic plugin插件的安装
Re:一个女人的十年 [录音+文字]
Re:一个女人的十年 [录音+文字]
Re:一个女人的十年 [录音+文字]
Re:一个简单的DWR例子
Re:一个女人的十年 [录音+文字]
Re:一组照片
Re:一组照片
Re:一个女人的十年 [录音+文字]
Re:一个女人的十年 [录音+文字]
Re:一个女人的十年 [录音+文字]
Re:一个女人的十年 [录音+文字]
Re:一个女人的十年 [录音+文字]
Re:apache2.0 prefork和worker模块性能调优
Re:蒋捷《虞美人·少年听雨歌楼上》
Re:一个女人的十年 [录音+文字]
Re:一个女人的十年 [录音+文字]
Re:一个女人的十年 [录音+文字]
Re:一个女人的十年 [录音+文字]
Re:一个女人的十年 [录音+文字]

我的链接

妮妮的世界
小宝成长日记
汽车维修、保养专业站

CSS2中文手册
SpringFramework中文论坛
以前的事 现在的事 将来的事
DynamicDrive
CSDN 金·评·没|YanHui's blog
tomcat 5.0 文档
sixsun的blog
王育琨专栏
西安信息资源网
[埃里克森]的Blog



flashplayer.cn

Apache HTTP Server Version 2.2 文档
天津一汽
Tortoise Cvs Homepage
天津博客
Java开源大全
OpenSymphony
Java视线论坛

网友留言

<写留言>
我们的感觉好比一个十年的女人
你的博客做得很棒
认识你好高兴
其实我也是学计算机的
你好,朋友!
你是不是搞程序的?
交朋识有
祝你新年快乐!
经常关注你的blog,希望有机会认识一下!
元旦快乐

站内统计

日志总数:200
今日访问:1289
访问总数:1145155
评论总数:324
留言总数:14

存档

2008年01月(1)
2007年12月(3)
2007年11月(2)
2007年10月(1)
2007年08月(2)
2007年07月(1)
2007年06月(3)
2007年05月(2)
2007年04月(5)
2007年03月(2)
2007年01月(2)
2006年12月(3)
2006年11月(1)
2006年09月(5)
2006年08月(2)
2006年07月(8)
2006年06月(7)
2006年05月(9)
2006年04月(13)
2006年03月(30)
2006年02月(23)
2006年01月(9)
2005年12月(12)
2005年11月(23)
2005年10月(23)
2005年09月(2)

控制台入口

用户名
密 码