`
isiqi
  • 浏览: 16351006 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

正则表达式判断实例

阅读更多
7.11 实用举例
正则表达式用于字符串处理、表单验证等场合,实用高效,这里对一些常用的表达式进行简单整理,作为读者学习正则表达式的参考。
7.11.1 普通字符匹配
下面是一些在网页编程中经常会遇到的字符匹配模式。
//匹配中文字符的正则表达式
[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*$)
//匹配E-mail地址的正则表达式
w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*
//匹配网址URL的正则表达式:
http://([w-]+.)+[w-]+(/[w- ./?%&=]*)?
7.11.2 限制表单输入的内容
在网页编程中,经常会用到限制网页表单里的文本框输入内容的情况,下面是一些利用正则表达式来实现这种功能的示例。
//用正则表达式限制只能输入中文
onkeyup="value=value.replace(/[^u4E00-u9FA5]/g,'')"
onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').rep-lace(/[^u4E00-u9FA5]/g,''))"
//用正则表达式限制只能输入全角字符
onkeyup="value=value.replace(/[^uFF00-uFFFF]/g,'')"
onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').rep-lace(/[^uFF00-uFFFF]/g,''))"
//用正则表达式限制只能输入数字
onkeyup="value=value.replace(/[^d]/g,'')
"onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').re-place(/[^d]/g,''))"
//用正则表达式限制只能输入数字和英文
onkeyup="value=value.replace(/[W]/g,'')
"onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^d]/g,''))"
7.11.3 去除重复字符
下面的程序利用正则表达式去除字符串中重复字符,思路是使用后向引用,取出包括重复的字符,再以重复的字符建立第二个表达式,取到不重复的字符,两者串连。这个方法对于字符顺序有要求的字符串可能不适用。
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
7.11.4 从URL中提取文件名
下面的程序,使用正则表达式从URL地址中提取文件名,结果为page1。
s=http://www.9499.net/page1.htm
s=s.replace(/(.*/){0,}([^.]+).*/ig,"$2")
alert(s);
javascript中没有像vbscript那样的trim函数,可以利用这个表达式来实现。
String.prototype.trim = function()
{
return this.replace(/(^s*)|(s*$)/g, "");
}
7.11.5 匹配IP地址
下面是一个利用正则表达式匹配IP地址,并将IP地址转换成对应数值的程序。
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()函数分解可能更简单,方法如下所示。
<script language="javascript">
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))
</script>
分享到:
评论

相关推荐

    正则表达式经典实例

    ### 正则表达式经典实例 #### 一、概述 正则表达式是计算机科学领域中一种用于描述字符串模式的强大工具。它广泛应用于文本搜索、数据验证、字符串替换等多种场景。《正则表达式经典实例》这本书深入浅出地介绍了...

    pb 使用正则表达式源码pbregexp

    例如,开发者可能需要创建一个`RegExp`实例,设置正则表达式模式,然后调用`Execute`方法进行匹配操作。如果匹配成功,可以通过`Match`对象获取相关信息。 描述中提到的“pb中使用正则表达式组件,通过该组件可以在...

    vb与正则表达式小实例

    5. **验证控件输入**:在VB中,假设我们有一个TextBox控件`txtInput`,可以使用`txtInput.Text`获取其文本内容,然后通过`regex.IsMatch(txtInput.Text)`来判断输入是否符合正则表达式。 6. **错误处理**:在验证...

    java 字符串 正则表达式 详细实例代码

    本篇将深入探讨Java中的字符串、正则表达式及其在实际编程中的详细实例代码。 1. **字符串基础** - Java中的字符串是不可变的,这意味着一旦创建了字符串对象,就不能更改其内容。这由`final`关键字确保,提高了...

    Oracle正则表达式详解(用法+实例)

    - **功能**: 类似于 `LIKE` 函数,用于判断字符串是否符合指定的正则表达式模式。 - **语法**: ```sql REGEXP_LIKE(expr, pattern [, match_parameter]) ``` - **示例**: - 查询以 "1" 开头且以 "60" 结尾的长度...

    正则表达式 正则表达式资料 正则表达式教程

    虽然这并不是一篇完整的教程,但它提供了一系列实用的正则表达式实例,如用于判断电子邮件地址、QQ号码、身份证号码格式等。对于需要在实际项目中运用正则表达式的开发者来说,这些实例是非常有价值的参考资料。 ##...

    Java正则表达式详细讲解

    Java正则表达式是Java编程语言中用于处理字符串的强大工具,它允许程序员通过模式匹配来查找、替换或分割文本。...在实际项目中,结合`MLDN魔乐JAVA_59正则表达式`中的实例和练习,将进一步巩固和提升你的技能。

    正则表达式经典实例 (美)高瓦特斯,(美)利维森

    《正则表达式经典实例》是由(美)高瓦特斯和(美)利维森共同编著的一本关于正则表达式的权威指南。这本书深入浅出地介绍了正则表达式的概念、语法以及在各种编程环境中的应用,为读者提供了一个全面理解和掌握正则...

    boost库中的正则表达式

    `basic_regex`的实例表示了一个编译后的正则表达式模式。例如,`regex`和`wregex`是对`basic_regex&lt;char&gt;`和`basic_regex&lt;wchar_t&gt;`的别名,分别用于处理宽字符和窄字符的正则表达式。 2. **构造函数**:`basic_...

    正则表达式的N种应用实例

    像正则表达式的一些应用,如用来判断处理字符串,像身份证号码,邮箱号等等约束,里面有详细的说明和使用实例,很适合初步接触正则表达式的人来学习

    神奇的匹配 正则表达式求精之旅

    在“神奇的匹配 正则表达式求精之旅”中,你将通过实例解析,逐步掌握这些概念,并学会如何在不同的编程环境中应用它们。无论是在文本编辑器中查找和替换,还是在脚本语言中处理复杂的数据过滤,正则表达式都将是你...

    C++代码实例:正则表达式

    ### C++代码实例:正则表达式 #### 知识点概述 本示例通过一个C++程序展示了如何实现简单的正则表达式匹配。在实际应用中,正则表达式是一种强大的文本处理工具,用于模式匹配、搜索和替换等操作。在本案例中,...

    从正则表达式到有穷自动机实例.rar

    本实例主要探讨如何将正则表达式转化为有穷自动机,并通过具体的案例进行深入解析。 正则表达式是一种强大的字符串匹配模式,它能简洁地描述一类字符串的共同特征。例如,`\d{3}-\d{4}`可以匹配中国电话号码的标准...

    C#中的正则表达式详解

    1. **Regex 类**:表示只读正则表达式,提供了一系列静态方法,允许开发者在不显式实例化其他类的情况下使用正则表达式。例如,创建一个简单的正则表达式实例,可以使用如下代码: ```csharp Regex r = new Regex...

    正则表达式工具、常用正则表达式生成

    在RegexTool.exe这样的工具中,用户可以输入待验证的正则表达式和测试文本,通过“测试”功能快速判断正则表达式的有效性。 总之,正则表达式是IT行业中的重要工具,用于高效处理文本。通过使用正则表达式生成工具...

    groovy正则表达式基础1

    - `==~`操作符:用于判断完全匹配,如`"hello" ==~ "he*llo"`直接返回布尔值,表示字符串是否与正则表达式完全匹配。 3. **原始字符问题** - 在Groovy中,正则表达式中的特殊字符(如`\w`)需要转义。例如,要...

Global site tag (gtag.js) - Google Analytics