- 浏览: 203583 次
- 性别:
- 来自: 合肥
文章分类
- 全部博客 (156)
- 职场人生 (6)
- 开发时遇见的问题 (14)
- 技术学习 (13)
- Hibernate开发与实战学习 (10)
- Junit (9)
- 设计模式 (4)
- Lucene (1)
- Log4J (1)
- JBPM (0)
- OA (0)
- Spring (0)
- Struts2 (1)
- Android (2)
- Python (1)
- 生活点点滴滴 (8)
- Java (11)
- JavaScript&Jquery (22)
- Hadoop (1)
- JSP&Servlet (8)
- dom4j (2)
- mysql (2)
- Oracle (7)
- PHP (0)
- Jmeter (1)
- 测试方面的东东 (1)
- 励志文章 (3)
- CSS (4)
- XHTML&HTML (1)
- Linux相关 (7)
- C&C++ (2)
- Unix C (3)
- 开发软件配置及软件应用 (2)
- English Study And Movie Scripts (3)
- My English World (1)
最新评论
-
yingzhixing:
不错不错~~
利用org.springframework.web.util中的HtmlUtils工具类 -
yonguo:
博主能把完整的pom配置贴一下共享吗?
在maven中使用YUI-Compressor -
yan578351314:
我的为什么会出现语法错误呢?一大推错误信息...
在maven中使用YUI-Compressor -
jstenjoy:
什么是JBPM -
疯狂的草儿:
cat_rat 写道我是2010年9月份进入公司的--2010 ...
辞职了,离开了我工作的第一家公司
创建一个正则表达式有两种方法
//第一种 var reg = /pattern/; //第二种 var reg = new RegExp('pattern');
正则表达式的exec方法简介
reg.exec(str);
其中str为要执行正则表达式的目标字符串。
eg:
<script type="text/javascript"> var reg = /test/; // or var reg = new RegExp('test'); var str = 'testString'; var result = reg.exec(str); alert(result); </script>
将会输出test,因为正则表达式reg会匹配str(‘testString’)中的’test’子字符串,并且将其返回。
一片两片三四片,落尽正则全不见
上面的小标题翻译成正则就是{1},{2},{3,4},{1,}。
c{n}
{1}表示一个的意思。
/c{1}/只能匹配一个c。
/c{2}/则会匹配两个连续的c。
以此类推,
/c{n}/则会匹配n个连续的c。
看下面的例子:
<script type="text/javascript"> function execReg(reg,str){ var result = reg.exec(str); alert(result); } reg = /c{1}/; str='crazy'; execReg(reg,str); </script>
返回结果为c。
<script type="text/javascript"> function execReg(reg,str){ var result = reg.exec(str); alert(result); } reg = /c{2}/; str='crazy'; execReg(reg,str); </script>
返回结果为:null ,表示匹配没有成功。
c{m,n}
c{3,4}的意思是,连续的3个c或者4个c。
例如
<script type="text/javascript"> function execReg(reg,str){ var result = reg.exec(str); alert(result); } reg = /c{3,4}/; str='cccTest'; execReg(reg,str); </script>
返回结果:ccc
<script type="text/javascript"> function execReg(reg,str){ var result = reg.exec(str); alert(result); } reg = /c{3,4}/; str='ccccTest'; execReg(reg,str); </script>
结果返回cccc,这表明正则会尽量多品牌,可3可4的时候它会选择多匹配一个。
<script type="text/javascript"> function execReg(reg,str){ var result = reg.exec(str); alert(result); } reg = /c{3,4}/; str='cccccTest'; execReg(reg,str); </script>
仍然只匹配4个c。
由以上例子可以推断出,c{m,n}表示m个到n个c,且m小于等于n。
c{n,}
c{1,}表示1个以上的c。例如:
<script type="text/javascript"> function execReg(reg,str){ var result = reg.exec(str); alert(result); } reg = /c{1,}/; str='crazy'; execReg(reg,str); </script>
结果返回c。
<script type="text/javascript"> function execReg(reg,str){ var result = reg.exec(str); alert(result); } reg = /c{1,}/; str='cccccTest'; execReg(reg,str); </script>
结果返回:ccccc,再次说明了正则表达式会尽量多地匹配。
<script type="text/javascript"> function execReg(reg,str){ var result = reg.exec(str); alert(result); } reg = /c{2,}/; str='crazycao'; execReg(reg,str); </script>
结果返回null,c{2,}表示2个以上的连续c,而crazycao中只有1个c。
由以上例子可知,c{n,}表示最少n个c,最多则不限个数。
*,+,?
*表示0次或者多次,等同于{0,},即
c* 和 c{0,} 是一个意思。
+表示一次或者多次,等同于{1,},即
c+ 和 c{1,} 是一个意思。
最后,?表示0次或者1次,等同于{0,1},即
c? 和 c{0,1} 是一个意思。
贪心与非贪心
人 都是贪婪的,正则也是如此。我们在例子reg = /c{3,4}/;str='ccccTest';的例子中已经看到了,能匹配四个的时候,正则绝对不会去匹配三个。上面所介绍的所有的正则都是这样,只 要在合法的情况下,它们会尽量多去匹配字符,这就叫做贪心模式。
如果我们希望正则尽量少地匹配字符,那么就可以在表示数字的符号后面加上一个?。组成如下的形式:
{n,}?, *?, +?, ??, {m,n}?
同样来看一个例子:
<script type="text/javascript"> function execReg(reg,str){ var result = reg.exec(str); alert(result); } reg = /c{1,}?/; str='ccccc'; execReg(reg,str); </script>
返回的结果只有1个c,尽管有5个c可以匹配,但是由于正则表达式是非贪心模式,所以只会匹配一个。
/^开头,结尾$/
^表示只匹配字符串的开头。看下面的例子:
<script type="text/javascript"> function execReg(reg,str){ var result = reg.exec(str); alert(result); } reg = /^c/; str='grassc'; execReg(reg,str); </script>
结果为null,因为字符串‘维生素c’的开头并不是c,所以匹配失败。
<script type="text/javascript"> function execReg(reg,str){ var result = reg.exec(str); alert(result); } reg = /^c/; str='cainiao'; execReg(reg,str); </script>
这次则返回c,匹配成功,因为cainiao恰恰是以c开头的。
与^相反,$则只匹配字符串结尾的字符,同样,看例子:
<script type="text/javascript"> function execReg(reg,str){ var result = reg.exec(str); alert(result); } reg = /c$/; str='crazy'; execReg(reg,str); </script>
返回null,表示正则表达式没能在字符串的结尾找到c这个字符。
reg = /c$/; str='维生素c'; execReg(reg,str);
这次返回的结果是c,表明匹配成功。
点’.’
.’会匹配字符串中除了换行符\n之外的所有字符,例如
<script type="text/javascript"> function execReg(reg,str){ var result = reg.exec(str); alert(result); } reg = /./; str='crazy'; execReg(reg,str); </script>
结果显示,正则匹配到了字符c。
<script type="text/javascript"> function execReg(reg,str){ var result = reg.exec(str); alert(result); } reg = /./; str='blueidea'; execReg(reg,str); </script>
这次是b
<script type="text/javascript"> function execReg(reg,str){ var result = reg.exec(str); alert(result); } reg = /.+/; str='javaeye——经典论坛 好_。'; execReg(reg,str); </script>
结果是“javaeye——经典论坛 好_。“也就是说所有的字符都被匹配掉了,包括一个空格,一个下滑线,和一个破折号。
<script type="text/javascript"> function execReg(reg,str){ var result = reg.exec(str); alert(result); } reg = /.+/; str='iteye.com'; execReg(reg,str); </script>
同样,直接返回整个字符串——iteye.com,可见”.”也匹配”.”本身。
<script type="text/javascript"> function execReg(reg,str){ var result = reg.exec(str); alert(result); } reg = /^./; str='\ncrazy'; execReg(reg,str); </script>
结果是null,终于失败了,正则要求字符串的第一个字符不是换行,但是恰恰字符是以\n开始的。
发表评论
-
Firebug 调试器开发中的12个技巧
2011-05-26 21:14 1568相信很多从事Web开发工作的开发者都听说和使用过Firebu ... -
锋利的jQuery 第三章 jQuery中的DOM操作
2011-02-05 02:04 857第三章 jQuery中的DOM操作 -
锋利的jQuery第二章 选择器
2011-01-31 23:46 983锋利的jQuery第二章 选择器 <!DOC ... -
锋利的Jquery第一章 认识jQuery
2011-01-29 13:34 1100锋利的Jquery第一章jQuery 1.3.1 配置 ... -
fckeditor
2010-12-17 16:24 753下载地址:http://ckeditor.com/downl ... -
JSValidation用户手册
2010-12-17 13:16 11151 . JSValidation是什么? ... -
测试Gadget时,IE7下出现的问题
2010-11-13 08:24 701一个比较弱智的错误: function initSPI ... -
JS中substr和substring的用法和区别
2010-09-10 17:24 759substr 和 substring都是JS ... -
jQuery.extend 函数详解
2010-07-20 16:23 1300JQuery的extend扩展方法: Jqu ... -
判断浏览器的名称和版本的一段javascript
2010-07-07 14:40 943navigator是一个独立的 ... -
FireBug Console API
2010-07-06 14:38 821console.log(object[, object, .. ... -
APtana
2010-07-01 13:29 745http://www.aptana.com/downloads ... -
JS的正则表达式(五)
2010-02-26 15:57 1087exec方法详解 exec方法的返回值 exec方法返回的 ... -
JS的正则表达式(四)
2010-02-26 14:36 1442括号(2) 前面我们曾经讨论过一次括号的问题,见下面这个例子 ... -
JS的正则表达式(三)
2010-02-26 13:28 1157边界与非边界\b表示的边界的意思,也就是说,只有字符串的开头和 ... -
JS的正则表达式(二)
2010-02-26 10:17 1197二选一,正则表达式中的或,“|“ b|c表示,匹配b或者c。 ... -
JavaScript函数对象
2010-02-24 10:10 804在JavaScript中,函数也是对象,我们使用下面的语句 ... -
JavaScript常用内置对象(三)
2010-02-24 10:03 1044<script language=" ... -
JavaScript常用内置对象(二)
2010-02-24 09:42 925<script language=" ... -
JavaScript常用对象(一)
2010-02-24 09:13 761<Script language="ja ...
相关推荐
JavaScript 正则表达式迷你书 本书是 JavaScript 正则表达式的入门级教程,旨在帮助读者快速掌握正则表达式的基本概念和应用。下面是本书的知识点摘要: 第一章:正则表达式字符匹配攻略 * 两种模糊匹配:横向...
下面将详细介绍如何利用JavaScript中的正则表达式来实现这一功能。 #### 1. 正则表达式基础介绍 正则表达式是一种强大的文本匹配工具,它提供了一种灵活的方式来查找、替换或提取字符串中的模式。在JavaScript中,...
JavaScript正则表达式是用于匹配字符串模式的强大工具。在验证邮箱和手机号码时,我们需要创建符合特定规则的正则表达式。对于邮箱验证,通常的正则表达式如下: ```javascript var emailRegex = /^[a-zA-Z0-9._%...
1. JavaScript正则表达式在线测试工具:http://tools.jb51.net/regex/javascript 2. 正则表达式在线生成工具:http://tools.jb51.net/regex/create_reg 这些工具可以帮助开发者快速测试和生成正则表达式,从而提高...
正则表达式是一种强大的文本处理工具,广泛应用于各个领域。下面是对正则表达式的详细解释: 正则表达式的用途 正则表达式主要用于处理文本,提供了两大主要功能:查找和替换。查找功能允许用户根据不同的规则来...
js正则表达式,按甲方(银行)提供的个人证件信息采集规则编写的对应正则表达式
下面是一个简单的JavaScript示例代码,展示如何使用正则表达式匹配`<div>`和`<style>`标签: ```javascript // 示例字符串,包含div和style标签 var htmlString = '<div>这是一个div标签的内容。这是style标签中的...
正则表达式是一种强大的文本处理工具,用于匹配、查找、替换等操作,广泛应用于编程语言中。在IT行业中,正则表达式是处理字符串时不可或缺的一部分,尤其在数据验证、文本提取等方面。在这个场景中,我们需要创建一...
《JavaScript正则表达式迷你书》是一本关于JavaScript正则表达式的专业书籍,正则表达式是处理字符串的强大工具,广泛应用于编程语言中的文本处理。本书从字符匹配、位置匹配、括号的作用、回溯法原理、拆分、构建和...
JavaScript正则表达式是编程语言中的一个重要组成部分,用于处理文本模式匹配和字符串操作。这篇博客“javascript正则表达式综合练习”可能是一个实践教程或示例集合,旨在帮助开发者提升在JavaScript中使用正则...
在JavaScript编程中,正则表达式(Regular Expression)是一种强大的文本处理工具,广泛应用于字符串的查找、替换和分割等操作。"JS正则表达式葵花宝典"深入讲解了正则表达式的使用技巧和高级特性,特别是针对URL...
#### 一、正则表达式的概念及其在JavaScript中的重要性 正则表达式(Regular Expression)是一种强大的文本处理工具,能够帮助开发者进行复杂的字符串搜索和替换。在JavaScript中,正则表达式被广泛应用于字符串...
js正则表达式校验数字、email、身份证号等
### js正则表达式详解 #### 一、正则表达式基础知识 正则表达式是一种强大的文本处理工具,被广泛应用于各种编程语言中,用于文本的查找与替换、验证等场景。JavaScript同样支持正则表达式的使用,并且具有非常...
正则表达式由一系列字符和特殊符号组成,可以表达复杂的模式匹配规则。在许多编程语言中,都有内置的库或函数支持正则表达式操作。 例如,如果我们想验证一个字符串是否为有效的电子邮件地址,可以使用以下正则...
根据提供的文件信息,我们可以整理出一系列与正则表达式相关的知识点。这些知识点涵盖了从基本的数字验证到复杂的字符串匹配等多个方面。下面是详细的知识点总结: ### 基本概念 正则表达式是一种用于文本模式匹配...
- **JavaScript中的正则表达式**:JavaScript的正则表达式对象提供了丰富的功能,包括全局匹配、忽略大小写等选项。 - **.NET框架中的正则表达式**:通过System.Text.RegularExpressions命名空间提供支持。 #### 六...