`

javascript正则表达式学习笔记

阅读更多
1、js中正则表达式的声明
var reg = /abc/;
var reg2 = new RegExp('abc');

2、正则表达式常用的三种模式
i   ignoreCase  忽略大小写
g   global      全局匹配(正常情况下,正则表达式发现第一个匹配项就停止工作,而/g模式下会继续查找)
m   multiline   多行匹配

var reg = /a/i;
      或  var reg = new RegExp("a","i"); //二者等价,匹配第一个a或者A
    
            三者可以混用,如 /ab/ig
     
3、RegExp对象的属性
属性:global       是否设置/g属性
ignoreCase    是否设置/i属性
multiline    是否设置/m属性
lastIndex
source       正则表达式所对应的字符串

4、RegExp对象的方法
exec(string)  返回一个数组,没有匹配则返回null.虽然是数组,但一般情况下只返回的第一个匹配项。这个数组有两个特殊的属性index,input
test(string)  返回boolean,如果存在匹配的字符串,则true,反之false

var reg = /a/;
var text = "xyzabcdea";
alert(reg.lastIndex); // 0   <line:3>
var matches = reg.exec(text);
alert(matches.length);//1
alert(matches.index)  //3,匹配字符的索引
alert(matches.input)  //"xyzabcdea"  exec传入的字符串
alert(reg.lastIndex); // 4   结合<line:3>
//当没有匹配时,lastIndex=0,当执行完一次匹配时,因为匹配的字符串的索引为3,所以lastIndex=4,从最后匹配的下一上字符开始查找

再来理解/g模式
var reg = /a/;
var text = "xyzabcdea";
var matches = reg.exec(text);
alert(matches.index)  //3
var matches = reg.exec(text);
alert(matches.index)  //3
//两次输出都为3,虽然执行了两次exec(),但是匹配的都是同一个a

如果改为/g模式,则会查找所有匹配的字符
var reg = /a/g;
var matches = reg.exec(text);
alert(matches.index)  //3
var matches = reg.exec(text);
alert(matches.index)  //8

再来理解/m模式
var reg = /a/;
var text = "xyzab\ncdea";
var matches = reg.exec(text);
alert(matches.index)  //3
var matches = reg.exec(text);
alert(matches.index)  //3

5、支持正则表达式的 String 对象的方法

match 返回一个数组,找到一个或多个正则表达式的匹配。
search 返回匹配字符的索引,没有返回-1。
replace 替换与正则表达式匹配的子串。
split 把字符串分割为字符串数组。

var reg = /a/ig;
var text = 'abcabcA';
alert(text.match(reg));//a,a,A

var reg = /a/;
var text = 'abcabcA';
alert(text.search(reg));//0

注意的是search()方法不支持全局匹配正规表达式(带参数g)。无论查找几次,都找到的是第一个,没有找到返回-1
其实search()跟indexOf()功能差不多,只不过前者支持正则表达式,后者不支持
var reg = /a/g;
var text = 'abcabcA';
alert(text.search(reg));//0
alert(text.search(reg));//0

var reg = /a/;
var text = 'abcabcA';
alert(text.replace(reg,'b'));//bbcabcA

var reg = /a/ig;
var text = 'abcabcA';
alert(text.replace(reg,'b'));//bbcbbcb

//replace第二个参数可以是个函数
var reg = /[<>]/g;
var text = '<html></html>';
alert(text.replace(reg,function(match,pos,originalText){
switch(match){
case "<":
return "&lt;";
case ">":
return "&gt;";
}
}));
分享到:
评论

相关推荐

    正则表达式学习笔记

    ### 正则表达式学习笔记 #### 一、正则表达式概述 正则表达式是一种强有力的模式匹配工具,广泛应用于各种编程语言中,用于文本处理。正则表达式允许用户定义复杂的查找模式,这对于数据验证、搜索和替换操作特别...

    JavaScript正则表达式学习资料笔记

    ### JavaScript正则表达式详解 #### 一、正则表达式的创建 正则表达式是JavaScript中用于处理字符串的强大工具之一。它可以帮助我们查找、替换或提取文本中的特定模式。在JavaScript中创建正则表达式有两种基本...

    关于js正则表达式学习笔记(自己整理的)

    JavaScript中的正则表达式是处理字符串的强大工具,用于匹配、替换、分割文本。它们在编程中扮演着不可或缺的角色,尤其在验证用户输入、提取数据、格式化内容等方面。以下是对正则表达式的基础知识和常见用法的详细...

    正则表达式学习笔记小结分享

    例如,`/hello regex/` 是一个简单的正则表达式,而 `new RegExp('模式', '修饰符')` 则是在 JavaScript 中创建正则表达式的方式。修饰符如 `i`(忽略大小写)、`g`(全局匹配)和 `m`(多行匹配)可以改变正则...

    正则表达式基础学习笔记

    不同的编程语言和环境可能使用不同的正则表达式引擎,如Perl兼容正则表达式(PCRE)、JavaScript的正则表达式等,它们在语法细节和功能上可能存在差异。 七、实例应用 1. 邮箱验证:`^[a-zA-Z0-9._%+-]+@[a-zA-Z0-...

    JS正则表达式入门笔记实例

    这篇入门笔记实例将带你深入了解正则表达式的使用。 1. **正则表达式基础** - **模式定义**:正则表达式由特殊字符(元字符)和普通字符组成,用于描述文本模式。 - **创建方式**:可以使用`/pattern/flags`或`...

    超经典正则表达式测试工具

    4. **学习正则的学习笔记**:可能包含一份详细的正则表达式学习资料,涵盖了基础概念如元字符、量词、字符类等,以及高级特性如分组、后向引用、预查等,方便用户系统学习。 5. **正则表达式参考手册**:可能提供了...

    (正则表达式)学习笔记

    在这个“正则表达式”学习笔记中,我们将深入探讨这一强大的工具。 1. **基础概念** - **字符集**:包括普通字符(如 `a`、`b`)和特殊字符(如 `.`、`\d`),它们组合起来形成匹配模式。 - **量词**:如 `*` ...

    Javascript正则表达式校验共7页.pdf.zip

    在这个名为“Javascript正则表达式校验共7页.pdf.zip”的压缩包中,很可能是提供了一份详细的教程或笔记,涵盖了JavaScript正则表达式的基础到高级用法,共计7页内容。 正则表达式(Regular Expression)是由字符、...

    精通正则表达式(英文版+中文目录)

    在实践中,书中会讨论如何在各种编程语言中使用正则表达式,如JavaScript、Python、Java等,并给出具体的示例代码,帮助读者理解如何在实际开发中应用正则表达式。此外,书中还会讲解正则表达式引擎的工作原理,这...

    正则表达式的笔记记录呢

    正则表达式是一个深奥且强大的工具,学习和理解其原理和技巧对于处理文本数据至关重要。熟练掌握正则表达式可以大大提高编程效率和代码质量。通过不断练习和使用,你可以更好地理解和运用这些概念来解决各种文本处理...

    php正则表达式学习笔记

    php正则表达式学习笔记分享: 1.创建正则表达式 $regex = ‘/\d/i’; 与JavaScript中的第一个方式有点像,只是这里的话是个字符串。  2.正则表达式中的特殊字符 特殊字符有: . \ + * ? [ ^ ] $ ( ) { } = ! &lt; ...

    正则表达式例子及笔记

    整理正则表达式的学习笔记有助于加深理解,提高记忆效果。可以将各种常见模式、特殊字符、语法结构和实例应用进行归纳,方便日后查阅和实践。通过分析和总结,可以逐步掌握正则表达式的精髓,提升在实际工作中解决...

    正则表达式笔记+源码!!!!!!

    学习和理解正则表达式,将有助于你在各种编程任务中更加游刃有余。为了深入理解和掌握,建议通过实际编写代码来实践各种正则表达式,同时结合各种在线测试工具进行检验和调试,这样可以更好地巩固所学知识。

    JavaScript学习笔记包括正则表达式、异常处理、调试、关键字等

    ### JavaScript 学习笔记知识点详解 #### 一、JavaScript 正则表达式 **1.1 定义与用途** 正则表达式是一种强大的文本处理工具,在JavaScript中主要用于字符串的操作,如查找、替换等。 **1.2 基本语法** 正则...

    正则表达式工具(检测_保存) RegExr.rar

    5. **保存与分享**:用户可以保存自己的正则表达式和匹配结果,方便日后复用或分享给他人,这对于团队协作或个人笔记非常有用。 6. **代码生成**:RegExr还能够自动生成对应编程语言的代码片段,例如JavaScript、...

Global site tag (gtag.js) - Google Analytics