`
Black_Kite
  • 浏览: 6928 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论
阅读更多

分组

  var re = /(dog){2}/g;

 

反向引用

按从左到右的顺序对分组进行编号

1.从RegExp中获得反向引用的值

  var s = "#123456789";

  var re = /#(\d+)/;

  re.test(s);

  alert(RegExp.$1);  //输出123456789

2.还可以直接在定义分组的表达式中包含反向引用,通过\1,\2```实现

  var s = "catcat";

  var re = /(dog)\1/;

  alert(re.test(s));  //true

3.用在replace()方法中

  var s = "1234 5678";

  var re = /(\d{4}) (\d{4})/;

  var s = s.replace(s, "$2 $1");

 

候选|

  var s1 = "red";

  var s2 = "cat";

  var re = /(red|cat)/;

  re.test(s1);  //true

  re.test(s2); //true

 

创建反向引用的分组,称之为捕获型分组;同时还有一种非捕获型分组,他不会创建反向引用。

在较长的正则表达式中,存储反向引用会降低匹配速度。通过使用非捕获型分组,仍然可以拥有与匹配字符串序列同样的能力,而无需存储结果的开销。

  var re = /#(?:\d+)/; ——?:创建非捕获性分组

  删除页面所有html标签的例子

  String.prototype.trimHtml = function(){

     var re = /<(?:.|\s)*?>/g;

     return this.replace(re, "");

  }

 

前瞻——告诉正则表达式运算器向前看一些字符而不移动其位置

正向前瞻检查的是接下来出现的是不是某个特定字符集——将模式放在(?=和)之间,分组不考虑前瞻的存在。

负向前瞻检查接下来的不应该出现的特定字符集——将模式放在(?!和)之间。

注:JavaScript不支持后瞻,后瞻匹配这种模式:匹配b当且仅当前面没有a

  var s1 = "bedroom";

  var s2 = "bedding";

  var re = /(bed(?=room))/;

  alert(re.test(s1));  //true;

  alert(RegExp.$1);  //bed

  alert(re.test(s2));  //false;

 

 

  var s1 = "bedroom";

  var s2 = "bedding";

  var re = /(bed(?!room))/;

  alert(re.test(s1));  //false

  alert(RegExp.$1);  //bed

  alert(re.test(s2));  //true

 

边界

  ^——行开头

  $——行结尾

  \b——单词的边界

  \B——非单词的边界

 

 

多行模式

/m

  var s = "aaa sss\ndsdds sddd\naaadffs sdfewf";

  var r = /(\w+)$/gm;

  alert(s.match(r));  //这样可以返回sss,sddd,sdfewf

 

 RegExp对象

    属性:global——表示g是否已设置

             ignoreCase——表示i是否已设置

             lastIndex——整数,代表下次匹配将会从哪个字符位置开始(只有使用exec()或test()函数时才填入,否则为0)

             multiline——表示m是否已设置

             source——正则表达式的源字符串形式。/[ba]*/的source将返回"[ba]*"

    静态属性:

长  名 短  名  描  述 
input $_ 最后用于匹配的字符串(传递给exec()或test()的字符串)
lastMatch $& 最后匹配的字符
lastParen $+ 最后匹配的分组
lastContext $` 在上次匹配的前面的子串
multiline $* 用于指定是否所有的表达式都使用多行模式的布尔值
rightContext $' 在上次匹配之后的子串
       

 

 

 

 

 

分享到:
评论

相关推荐

    js正则学习

    js正则学习,详细分析出正则,常见的正则 表达式

    JS正则表达式基础学习

    ### JS正则表达式基础学习知识点详解 #### 正则表达式概述 正则表达式是一种强大的文本处理工具,能够帮助我们完成各种复杂的字符串搜索、替换等操作。在JavaScript中,正则表达式广泛应用于数据验证、文本处理等多...

    基于js正则 匹配实现的物流地址智能识别【javascript】

    js正则 基于js正则匹配实现的物流地址智能识别 智能识别地址 例如:小埋13000000000广东省广州市天河区体育西路xx号 一键解析地址为: 收货人:小埋 电话:1300000000 省市区:广东省广州市天河区 地址:体育西路...

    javascript正则表达式综合练习

    JavaScript正则表达式是编程语言中的一个重要组成部分,用于处理文本模式匹配和字符串操作。这篇博客“javascript正则表达式综合练习”可能是一个实践教程或示例集合,旨在帮助开发者提升在JavaScript中使用正则...

    javascript正则表达式学习笔记

    这篇学习笔记将深入探讨JavaScript正则表达式的概念、语法和实际应用。 一、正则表达式基础 1. 创建正则表达式: - 字面量表示法:`/pattern/flags` - 构造函数:`new RegExp('pattern', 'flags')` 2. 常见的...

    JavaScript正则表达式迷你书

    本书从字符匹配、位置匹配、括号的作用、回溯法原理、拆分、构建和编程等方面深入讲解了JavaScript正则表达式的相关知识,适合需要进行字符串匹配、提取、验证等操作的读者学习。 第1章介绍了正则表达式字符匹配的...

    js正则练习-账号密码邮箱匹配

    在JavaScript(JS)中,正则表达式是一种强大的文本处理工具,用于匹配、查找、替换等操作。在“js正则练习-账号密码邮箱匹配”的场景中,我们需要编写正则表达式来验证用户输入的账号、密码和邮箱是否符合特定的...

    JavaScript正则表达式使用详解.zip

    总的来说,JavaScript正则表达式是一门深奥但强大的技术,通过学习和实践,我们可以更有效地处理和操纵字符串。这些资料将提供丰富的学习材料,帮助开发者提升在文本处理方面的能力。无论是初学者还是经验丰富的...

    js正则表达式资料

    以上内容涵盖了JavaScript正则表达式的基础和进阶知识点,对于理解和使用JavaScript正则表达式进行文本处理和验证等任务非常有帮助。通过深入学习和实践,你可以掌握这一强大的工具,提升你的编程技能。

    精通 JS正则表达式

    精通JS正则表达式的知识点详解 ...总之,精通JavaScript正则表达式不仅能够提高字符串处理的能力,还能让代码更加高效和优雅。通过对正则表达式的学习和实践,开发者可以轻松地解决各种字符串操作问题,提升编程效率。

    JavaScript正则表达式学习

    JavaScript正则表达式学习,PPT教程. 30分钟让你学会使用正刚表达式

    jq非空验证,js正则表达式验证邮箱和手机号码

    JavaScript正则表达式是用于匹配字符串模式的强大工具。在验证邮箱和手机号码时,我们需要创建符合特定规则的正则表达式。对于邮箱验证,通常的正则表达式如下: ```javascript var emailRegex = /^[a-zA-Z0-9._%...

    Java JS正则表达式大全

    **Java与JavaScript正则表达式详解** 在编程领域,正则表达式(Regular Expression)是一种强大的文本处理工具,尤其在处理字符串匹配、查找、替换和提取等任务时,它的功能尤为强大。Java和JavaScript虽然源自不同...

    javaScript正则表达式帮助文档

    JavaScript正则表达式是编程语言JavaScript中的一个重要组成部分,它用于处理文本字符串,执行模式匹配和查找、替换等操作。在JavaScript中,正则表达式是一种强大的工具,可以帮助开发者进行复杂的数据验证、文本...

    JS正则表达式葵花宝典

    深入学习正则表达式,不仅可以提高你在处理字符串时的效率,还能使代码更加简洁和高效。在JavaScript中,熟练掌握正则表达式可以极大地提升你的编程能力。"JS正则表达式葵花宝典"中的内容应该包括了这些关键知识点,...

    JS 正则验证表单

    通过以上讨论,我们可以看到JavaScript正则表达式在表单验证中的强大作用。理解并熟练掌握正则表达式的使用,不仅能够提高我们的编程效率,还能确保应用程序的数据质量,从而为用户提供更好的体验。在实际开发中,...

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

    JavaScript中的正则表达式是处理字符串的强大工具,用于匹配、替换、分割等操作。这篇入门笔记实例将带你深入了解正则表达式的使用。 1. **正则表达式基础** - **模式定义**:正则表达式由特殊字符(元字符)和...

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

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

Global site tag (gtag.js) - Google Analytics