1.正则的懒惰性???

每次在它的方法exec中捕获的时候,只捕获第一次匹配的内容,而不往下捕获,我们把这种情况称为正则的懒惰性

且每一次捕获的位置都是从索引0开始

正则的实例对象上有一个lastindex的属性,是正则开始捕获的起始位置

var reg=/\d+/;

var st="abc123efg456";

console.log(reg.exec(st))输出123

如何解决正则的懒惰性呢

用一个修饰词“g”就可以了

2.正则的贪婪性???

每次匹配到的结果都是最长的,把这种情况称为贪婪性。

var reg=/\d+/;

var st="abc12345"

console.log(reg.exec(st))  结果是12345

如何让解决他的贪婪性呢

在元字符量词后加?

var reg=/\d+?/g

3.分组捕获  /(   )/;

分组捕获的作用(1)改变优先级(2)分组引用

\1   \2分别为跟第一组和第二组出现同样的内容

var reg=/(\w)\1(\w)\2/;

var st="sstt"

console.log(reg.test(st))==true

分组捕获的前提是正则存在分组,而且是不仅会捕获到大正则,也会捕获到小正则的内容

var reg=/(a)(b)/

var st="abcd"

console.log(reg.exec(st))  结果输出是  ab  a  b

那么该如何解决这种情况呢

在不想让它出现的那个前面加?:

var reg=/(a)(?:b)/

var st="abcd"

console.log(reg.exec(st))    结果输出的是   ab  a

正则RegExp的懒惰性和贪婪性; 分组捕获;的更多相关文章

  1. 正则冷知识;分组捕获、replace()的用法...

    1.var reg=/./; var reg=/\./的区别?? 前者代表任意一个字符,后者代表这个字符串中得有一个.. 2.?的使用?? 如果单独的一个字符串后面带? , var reg=/\d?/ ...

  2. 正则-RegExp

    正则-RegExp 正则,是一条规则,用于检验字符串格式,目标就是字符串: 只要是表单提交的数据都是字符串 定义: 1,var reg=/格式/ 2,var reg=new regexp() 方法: ...

  3. 正则RegExp序2

    1.var reg=/./     var reg=/\./ 前者代表任意一个字符而后面代表这个字符串中得有一个. 2.?的使用 如果单独的一个字符后面带? var reg=/\d?/ /n?/ 代表 ...

  4. js常用数据类型(Number,String,undefined,boolean) 引用类型( function,object,null ),其他数据类型( 数组Array,时间Date,正则RegExp ),数组与对象的使用

    js常用数据类型 数字类型 | 字符串类型 | 未定义类型 | 布尔类型 typeof()函数查看变量类型 数字类型  Number var a1 = 10; var a2 = 3.66; conso ...

  5. Vue 变异方法filter和正则RegExp对评论进行搜索

    <!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  6. 正则-RegExp()构造函数

    上次写了js正则的字面量声明,今天说说RegExp()构造函数声明: var p=/cat/g;   //字面量声明var p=new RegExp('cat','g') //构造函数声明 它两所表达 ...

  7. 认识正则RegExp;

    1.什么是正则??? 就是一条规则,用于检验字符串的格式,目标就是字符串. *只要是表单提交的数据都是字符串 2.正则的定义??? (1)var reg=new RegExp() (2)var reg ...

  8. 原生js基础学习--正则RegExp

    转义字符"\" 使用反斜杠之后,会强制的将"\"之后的字符取消掉原来的意思转换成文本, 转义符号不会输出 var str= "abc\"de ...

  9. 正则RegExp对象的用法

    RegExp实例方法: 1.Test() RegExpObject.test(string) 判断string中是否有与表达式匹配的字符串,有则返回true,否则返回false 例如 var patt ...

随机推荐

  1. 二、Ansible中playbook的变量

    先看看debug模块的使用: msg:输出调试信息 var:将某个任务执行的输出作为变量传给debug模块,debug模块将其打印输出 verbosity:debug的任务级别   1:在playbo ...

  2. 删除iis日志(deliislogs.vbs)

    'path 目录 'ext 文件扩展名'expiredDays 保留多少天以内的文件Sub LogCleaner(path,ext,expiredDays) On Error Resume Next ...

  3. npm i 出错

    npm i npm ERR! code ECONNRESET npm ERR! errno ECONNRESET npm ERR! network request to https://registr ...

  4. 解决Ubuntn安装中文语言包却不能切换

    记一次奇葩的经历吧,第一次在VM中安装Ubuntn16.04安装完成后的确出现了语言包安装提示,就这样毫无压力的一直用着中文版的Ubuntn. 习惯了一段时间后第二次安装一样的安装方式却始终是英文界面 ...

  5. JAVA web端JS下载excel文件

    JSP代码如下: JSP端引入jquery.easyui.min.js库: <script type="text/javascript" src="<c:ur ...

  6. 纯CSS制作图形效果

    下面所有的例子都是在demo.html的基础上添加相关样式实现的. <!DOCTYPE html> <html> <head> <meta charset=& ...

  7. Python-递加计数器

    计数本:number.txt 1 2 3 4 主程序:计数器 # Author: Stephen Yuan # 递加计算器 import os # 递加计算器 def calc(): file_siz ...

  8. superrvisor application config ini

    1. zookeeper [program:zookeeper] environment = JAVA_HOME="/opt/jdk1.8.0_191" process_name= ...

  9. Vue组件间的参数传递

    1.父组件与子组件传值 父组件传给子组件:子组件通过props方法接受数据: 子组件传给父组件: $emit 方法传递参数 2.非父子组件间的数据传递,兄弟组件传值 eventBus,就是创建一个事件 ...

  10. RMI(远程方法调用)入门

    这两篇可以入门 http://www.cnblogs.com/ninahan0419/archive/2009/06/25/javarmi.html http://www.cnblogs.com/wx ...