js学习笔记
用到的几个链接
http://apps.hi.baidu.com/share/detail/9221711
可以当API用,说的很详细。
当该字符紧跟在任何一个其他限制符 (*, +, ?, {n
}, {n
,}, {n
,m
}) 后面时,匹配模式是非贪婪的。非贪婪模式尽可能少的匹配所搜索的字符串,而默认的贪婪模式则尽可能多的匹配所搜索的字符串。例如,对于字符串 "oooo",'o+?' 将匹配单个 "o",而 'o+' 将匹配所有 'o'。
http://blog.sina.com.cn/s/blog_50a82dcd010095sh.html
讲解贪婪惰性
正则表达式量词分别是:贪婪的、惰性的、支配性的。
贪婪:
? * + {n} {n,m} {n,}
惰性:
?? *? +? {n}? {n,m}? {n,}?
支配:
?+ *+ ++ {n}+ {n,m}+ {n,}+
分别的意思是:
零次或一次出现、零次或多次出现、一次或多次出现、恰好N次出现、至少N次最多M次出现、至少N次出现。
贪婪量词:先看整个字符串是否匹配,如果不匹配就把最后一个字符去掉在进行匹配,不匹配继续去掉最后一个字符,指导找到一个匹配或者不剩任何字符才停止。
惰性量词:先看第一个字符串是否匹配,如果第一个不匹配就在加入第二个字符串依此类推,指导找到一个匹配或者不剩任何字符才停止,贪婪量词与贪婪量词的方法正好相反.
浏览器对量词的支持还不完善,IE和OPERA都不支持量词,MOZILLA把支配量词看作是贪婪的
例子:
var str = 'aabbazbbwwbbaa';
var arr =str.match(/.*bb/); //aabbazbbwwbb,贪婪的
var arr =str.match(/.*?bb/g); //aabb azbb wwbb 返回一个数组包含3个值,惰性的
精华帖 http://www.iteye.com/topic/481228
也很详细
•g (全文查找)
•i (忽略大小写)
•m (多行查找)
正则表达式对象的方法
•test,返回一个 Boolean 值,它指出在被查找的字符串中是否存在模式。如果存在则返回 true,否则就返回 false。
•exec,用正则表达式模式在字符串中运行查找,并返回包<script type="text/javascript" src="http://www.iteye.com/javascripts/tinymce/themes/advanced/langs/zh.js"></script><script type="text/javascript" src="http://www.iteye.com/javascripts/tinymce/plugins/javaeye/langs/zh.js"></script>含该查找结果的一个数组。
•compile,把正则表达式编译为内部格式,从而执行得更快。
正则表达式对象的属性
•source,返回正则表达式模式的文本的复本。只读。
•lastIndex,返回字符位置,它是被查找字符串中下一次成功匹配的开始位置。
•$1...$9,返回九个在模式匹配期间找到的、最近保存的部分。只读。
•input ($_),返回执行规范表述查找的字符串。只读。
•lastMatch ($&),返回任何正则表达式搜索过程中的最后匹配的字符。只读。
•lastParen ($+),如果有的话,返回任何正则表达式查找过程中最后括的子匹配。只读。
•leftContext ($`),返回被查找的字符串中从字符串开始位置到最后匹配之前的位置之间的字符。只读。
•rightContext ($'),返回被搜索的字符串中从最后一个匹配位置开始到字符串结尾之间的字符。只读。
String对象一些和正则表达式相关的方法
•match,找到一个或多个正则表达式的匹配。
•replace,替换与正则表达式匹配的子串。
•search,检索与正则表达式相匹配的值。
•split,把字符串分割为字符串数组。
贪婪量词与惰性量词
•用贪婪量词进行匹配时,它首先会将整会字符串当成一个匹配,如果匹配的话就退出,如果不匹配,就截去最后一个字符进行匹配,如果不匹配,继续将最后一个字符截去进行匹配,直到有匹配为止。直到现在我们遇到的量词都是贪婪量词
•用惰性量词进行匹配时,它首先将第一个字符当成一个匹配,如果成功则退出,如果失败,则测试前两个字符,依些增加,直到遇到合适的匹配为止
惰性量词仅仅在贪婪量词后面加个"?"而已,如"a+"是贪婪匹配的,"a+?"则是惰性的
var str = "abc";
var re = /\w+/;//将匹配abc
re = /\w+?/;//将匹配a
分享到:
相关推荐
另外,为了方便大家使用,文中还推荐了两个在线工具:JavaScript正则表达式在线测试工具和正则表达式在线生成工具。这些工具可以帮助开发者在线测试正则表达式的匹配结果,甚至可以在线生成正则表达式,对于理解和...
JavaScript 正则表达式迷你书 本书是 JavaScript 正则表达式的入门级教程,旨在帮助读者快速掌握正则表达式的基本概念和应用。下面是本书的知识点摘要: 第一章:正则表达式字符匹配攻略 * 两种模糊匹配:横向...
`是一个非贪婪模式的字符匹配,它匹配任何字符(包括空白字符),尽可能少的次数。当与`<div>`或`<style>`标签的开始和结束相对应时,这些正则表达式将匹配整个标签及其内部内容。 需要注意的是,这种方法是不完美...
在上述例子中,即使使用非贪婪模式,正则表达式也必须匹配所有的'a'来确保后续的'b'能够被找到,因此结果与贪婪匹配相同。 3. **理解非贪婪匹配的工作原理**: 当使用非贪婪量词时,正则引擎首先找到最左边的匹配...
"JS正则表达式葵花宝典"深入讲解了正则表达式的使用技巧和高级特性,特别是针对URL验证的正则表达式,以及递归匹配和非贪婪匹配的概念。 首先,我们来谈谈URL验证的正则表达式。一个完整的URL通常包含协议(如http...
**Java与JavaScript正则表达式详解** 在编程领域,正则表达式(Regular Expression)是一种强大的文本处理工具,尤其在处理字符串匹配、查找、替换和提取等任务时,它的功能尤为强大。Java和JavaScript虽然源自不同...
**正则表达式(Regular Expression)是JavaScript编程...通过熟练掌握以上知识点,开发者能够更好地利用JavaScript正则表达式进行高效的数据处理和文本操作。结合在线工具,开发过程中的正则表达式使用将更加得心应手。
在正则表达式的世界里,贪婪与非贪婪模式是两种重要的匹配策略,它们决定了正则表达式在查找匹配时的行为。这两个概念对于任何想要深入理解正则表达式的开发者来说至关重要。 首先,我们来理解一下“贪婪”模式。...
在讲贪婪模式和惰性模式之前,先回顾一下JS正则基础: 写法基础: ①不需要双引号,直接用//包含 => /wehfwue123123/.test(); ②反斜杠\表示转义 =>/\.jpg$/ ③用法基础:.test(str); 语法: ①锚点类 /^a/=>以”a”...
JavaScript 中的正则表达式是指使用特殊字符来描述字符串模式的表达式。正则表达式可以用来匹配、检索和操作字符串。 RegExp 对象 在 JavaScript 中,正则表达式可以被定义为一个 RegExp 对象。每次估值时,RegExp...
JavaScript中的正则表达式(Regular Expression)是一种强大的文本...总的来说,JavaScript正则表达式提供了强大的字符串处理能力,可以用于复杂的文本匹配和验证,熟练掌握正则表达式能够极大提升代码的效率和灵活性。
本资料"js正则表达式测试含实例.rar"包含了对正则表达式在JavaScript中的运用及其实践案例的详细讲解,旨在帮助开发者深入理解和熟练掌握这一关键技能。 1. **正则表达式基础** - **定义与创建**:正则表达式是由...
JavaScript中的正则表达式(Regular Expression)是一种强大的文本处理工具,用于匹配字符串中的特定模式。在JavaScript中,正则表达式常用于验证用户输入、提取数据、替换文本等多种场景。以下将详细介绍JS正则...
- 使用非贪婪模式:`.*?`,避免在可能的最长匹配中浪费时间。 - 避免使用全局匹配的`replace()`,除非确实需要替换所有匹配项。 - 使用正则表达式构造函数时,尽量使用字面量形式,以提升性能。 10. **实践应用*...
在本资源“超有用的JS正则表达式大全”中,你可以深入学习和掌握JavaScript正则表达式的各种特性和用法,提升你在文本处理方面的技能。 1. 正则表达式基础: - 定义:正则表达式是由字符和特殊符号组成的模式,...
JavaScript正则表达式是JavaScript语言中一种极为重要的文本处理工具,它允许通过简洁的语法定义文本的匹配模式。这些模式可用来对字符串进行检索、替换、提取等操作。了解和掌握JavaScript正则表达式,对于提高...
JavaScript(简称JS)中的正则表达式是一种强大的文本处理工具,用于模式匹配、搜索、替换等操作。在JS中,正则表达式是通过构造函数`RegExp`或使用特殊的正则字面量语法(用斜杠`/`包围)创建的。本篇将深入探讨JS...
- 对于正则表达式的调试和测试,推荐使用在线工具,如文中提到的JavaScript正则表达式在线测试工具和正则表达式在线生成工具,这些工具可以帮助快速验证和调整正则表达式。 总之,理解并熟练掌握Python正则表达式...