`
holy_liang
  • 浏览: 1838 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论
阅读更多
经典正则表达式
摘要:收集一些常用的正则表达式。
引自:http://blog.holybbs.com/article.asp?id=284
另外一篇参考文档(介绍的很系统,推荐阅读):http://oo8h.51.net/docs/regular_expression.htm

正则表达式用于字符串处理,表单验证等场合,实用高效,但用到时总是不太把握,以致往往要上网查一番。我将一些常用的表达式收藏在这里,作备忘之用。本贴随时会更新。

匹配中文字符的正则表达式: [\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.gzcynet/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,''))"
分享到:
评论

相关推荐

    正则表达式转换工具

    1. **正则表达式基本概念** - 元字符:如`.`, `*`, `+`, `?`, `{}`, `[]`, `\`, `^`, `$`等,它们具有特殊含义,在正则表达式中用来定义模式。 - 字符类:例如`[abc]`,匹配其中任意一个字符。 - 量词:`*`, `+`,...

    正则表达式 正则表达式 正则表达式

    正则表达式是一种强大的文本处理工具,用于匹配、查找、替换和验证字符串模式。它在IT行业中被广泛应用,...虽然初学者可能会觉得正则表达式难以理解,但随着实践和经验的积累,你会发现它是处理文本问题的强大武器。

    常用正则表达式(经验积累)

    **正则表达式**: `^[1-9]\d{16}[0-9x]$ - **用途**: 用于验证身份证号格式是否正确。 - **应用场景**: 在需要收集用户身份证信息时,确保格式的准确性。 #### 13. IP地址验证 **正则表达式**: `\d+\.\d+\.\d+\.\d+`...

    自动生成需要的正则表达式

    正则表达式是一种强大的文本处理工具,用于匹配、查找、替换和分析字符串模式。在编程领域,它被广泛应用于数据验证、数据提取和文本解析等任务...在实践中,不断学习和积累经验,将使我们成为正则表达式的熟练使用者。

    正则表达式文章和测试工具

    正则表达式是编程语言中不可或缺的一部分,它用于匹配、查找、替换字符串中的特定模式。在IT领域,熟练掌握正则表达式对于...在日常工作中,不断积累经验,你将能够编写出更高效、更精确的正则表达式,提高工作效率。

    正则表达式30 分钟入门教程

    对于一些复杂的正则表达式编写,例如在文本处理中提取特定数据,可能需要编写者具备较强的逻辑分析能力和经验积累。 在使用正则表达式时,还应注意其性能问题,尤其是在面对大量数据处理时。过于复杂的正则表达式或...

    C# 正则表达式总结_V2

    1. `Match`:检查输入字符串是否符合指定的正则表达式模式。 2. `Matches`:返回所有符合正则表达式的子串集合。 3. `Replace`:将字符串中所有符合正则表达式的子串替换为新的字符串。 4. `Split`:根据正则表达式...

    Python3如何优雅地使用正则表达式.pdf

    在实际使用时,通常需要根据具体问题设计正则表达式模式,编写正则表达式需要一定的经验积累和对正则表达式语法的熟练掌握。例如,如果我们需要匹配一个电子邮件地址,可能需要构建一个复杂的正则表达式来包含用户名...

    正则表达式30分钟入门 pdf

    正则表达式是一种强大的文本处理工具,用于模式匹配、搜索和替换字符串中的特定模式。它在编程、数据清洗、文本分析等领域有着广泛的应用。...随着实践经验的积累,你将能更加自如地运用正则表达式解决复杂的问题。

    正则表达式-随心查找随心所用

    正则表达式是一种强大的文本处理工具,用于模式匹配和替换。...正则表达式的核心在于构建...这需要时间和经验的积累,但一旦熟练掌握,正则表达式将成为你不可或缺的工具,无论是在文本处理、数据分析还是在网页开发中。

    正则表达式30分钟入门教程.pdf

    ### 正则表达式30分钟入门教程精要解析 #### 核心知识点概览 正则表达式是一种强大的文本模式匹配工具,广泛应用于编程、数据处理和网页开发中,用于搜索、替换和验证字符串模式。《正则表达式30分钟入门教程》...

    正则表达式之道

    ### 正则表达式之道:深入解析与应用 正则表达式是一种强大的文本处理工具,其功能在于通过预设的模式来匹配、查找、替换文本中的字符串。...随着实践经验的积累,你会逐渐发现正则表达式的魅力所在。

    很全的正则表达式

    正则表达式(Regular Expression,简称regex)...学习正则表达式,需要熟悉其基本语法,理解各种元字符和构造的含义,并通过实践不断积累经验。通过不断练习和使用,你将能够熟练运用正则表达式解决各种文本处理问题。

    正则表达式讲解正则表达式

    1. **什么是正则表达式?** 正则表达式(Regular Expression,简称regex)是一种模式匹配语言,用于定义字符串的搜索模式。它由普通字符(如字母、数字)和特殊字符(元字符)组成,用于描述字符串的结构。 2. **...

    三十分钟学会正则表达式

    正则表达式是一种强大的文本处理工具,用于匹配、查找、...记得,刚开始接触时可能会觉得复杂,但随着实践的积累,你会发现正则表达式是一种强大而灵活的工具。所以,花时间去学习和理解它,对你的编程生涯大有裨益。

    正则表达式教程 正则表达式 教程 独家总结

    尽管初学者可能会觉得正则表达式复杂难懂,但随着实践经验的积累,它们会变得越来越得心应手。记住,掌握正则表达式的关键在于实践和反复使用,而不是一次性记住所有语法。通过不断地尝试和修改,你将逐渐熟悉并精通...

    正则表达式30分钟入门教程

    正则表达式是一种强大的文本处理工具,用于在字符串中匹配、查找、替换符合特定模式的文本。通过30分钟的入门教程,你可以快速理解其基本概念和常用语法...在实践中不断积累,你将能够灵活运用正则表达式解决各种问题。

Global site tag (gtag.js) - Google Analytics