JavaScript正则表达式模式匹配(3)——贪婪模式和惰性模式

 1 var pattern=/[a-z]+/;    //这里使用了贪婪模式,
 2 var str=‘abcdefg‘;
 3 alert(str.replace(pattern,‘1‘));  //所有的字符串变成了1
 4
 5 var pattern=/[a-z]+?/;    //这里使用了惰性模式,
 6 var str=‘abcdefg‘;
 7 alert(str.replace(pattern,‘1‘));  //只有第一个字符变成了1,后面没有匹配
 8
 9 var pattern=/[a-z]+?/;    //开启全局,并且使用惰性模式,
10 var str=‘abcdefg‘;
11 alert(str.replace(pattern,‘1‘));  //每一个字母替换成了1
12
13 var pattern=/6(.*)6/;    //使用了贪婪模式,
14 var str=‘6google6 6google6 6google6‘;   //匹配到了google6 6google6 6google
15 document.write(str.replace(pattern,‘<strong>$1<strong>‘)); //结果:<strong>google6 6google6 6google<strong>
16
17 var pattern=/6(.*?)6/;    //使用了惰性模式,
18 var str=‘6google6 6google6 6google6‘;
19 document.write(str.replace(pattern,‘<strong>$1<strong>‘)); //结果:<strong>google<strong> 6google6 6google6
20
21 var pattern=/6(.*?)6/g;    //使用了惰性模式,开启全局
22 var str=‘6google6 6google6 6google6‘;
23 document.write(str.replace(pattern,‘<strong>$1<strong>‘));
24 //结果:<strong>google<strong> <strong>google<strong> <strong>google<strong>
25 //结果正确
26
27 var pattern=/6([^6]*)6/g;    //另一种惰性,屏蔽了6的匹配,也就是两边的包含字符
28 var str=‘6google6 6google6 6google6‘;
29 document.write(str.replace(pattern,‘<strong>$1<strong>‘)); 

原文地址:https://www.cnblogs.com/guoxiangyue/p/8393400.html

时间: 2024-10-05 09:09:03

JavaScript正则表达式模式匹配(3)——贪婪模式和惰性模式的相关文章

JavaScript正则表达式模式匹配(1)——基本字符匹配

1 var pattern=/g..gle/; //点符号表示匹配除了换行符外的任意字符 2 var str='g78gle'; 3 alert(pattern.test(str)); 4 5 6 var pattern=/go*gle/; //o* ,表示0个或者多个o 7 var str='goooooooooooogle'; 8 alert(pattern.test(str)); 9 10 var pattern=/go+gle/; //o+,表示一个或者多个o 11 var str='g

正则表达式中的贪婪模式与非贪婪模式详解

1 概述 贪婪与非贪婪模式影响的是被量词修饰的子表达式的匹配行为,贪婪模式在整个表达式匹配成功的前提下,尽可能多的匹配,而非贪婪模式在整个表达式匹配成功的前提下,尽可能少的匹配.非贪婪模式只被部分NFA引擎所支持. 属于贪婪模式的量词,也叫做匹配优先量词,包括: “{m,n}”.“{m,}”.“?”.“*”和“+”. 在一些使用NFA引擎的语言中,在匹配优先量词后加上“?”,即变成属于非贪婪模式的量词,也叫做忽略优先量词,包括: “{m,n}?”.“{m,}?”.“??”.“*?”和“+?”.

javascript正则表达式简介

javascript正则表达式 javascript正则表达式 regular expression是一个描述字符模式的对象: ECMAScript中的RegExp类表示正则表达式: String和RegExp都定义了使用正则表达式进行强大的模式匹配.文本检索和替换的函数: 正则表达式主要用来验证客户端的输入数据: Ⅰ.创建正则表达式 类似于创建字符串,可以使用new运算符也可以采用字面值: 参数 含义 g 全局匹配 i 忽略大小写 m 多行匹配 下文中的javascript代码是通过 Ecli

JavaScript——正则表达式

正则表达式(regular expression)是一个描述字符模式的对象.JavaScript的 RegExp 类 表示正则表达式,而 String 和 RegExp 都定义了使用正则表达式进行强大的模式匹配和文本 检索与替换的函数 正则表达式主要用来验证客户端的输入数据.用户填写完表单单击按钮之后,表单就会 被发送到服务器,在服务器端通常会对其进行进一步处理.因为客户端验证,可以节约大量的服务器端的系统资源,并且提供更好的用户体验 创建正则表达式 创建正则表达式提供了两种方法 一种是采用 n

正则表达式中的贪婪、惰性、支配性的量词

转自:http://blog.csdn.net/cyai/article/details/2297951 使用正则表达式中的贪婪.惰性.支配性的量词可以控制表达式匹配过程,我们知道量词?.*.+的意义,可以指定相关模式出现的次数,默认的情况下我们使用 的是贪婪量词,它的匹配过程是从整个字符串开始查看,如果不匹配就去掉最后一个,再看看是否匹配,如此循环一直到匹配或字符串空为止,如:var s = "abbbaabbbaaabbb1234";var re1=/.*bbb/g;     //

正则表达式默认是贪婪模式

regex的---------------------正则表达式默认是贪婪模式,优先级|不高 没有^高因为.+要尽可能多的匹配.所以会认为1111.1 1. 111.111111.都是.+匹配的结果,但是由于正则表达式中最后还有一个 : . ,所以如果要是将.+匹配了所有的字符,则最后的 . (句号)无法找到匹配,正则表达式会尽可能的找到匹配,所以会将 .(句号)尝试给正则表达式中的最后一个字符(句号)来匹配,然后把前面的所有字符都用.+:来匹配.---------------------?功能

JavaScript之基础-10 JavaScript 正则表达式(概述、定义正则、RegExp对象、用于模式匹配的String方法)

一.JavaScript 正则表达式概述 正则表达式概述 - 正则表达式(Regular Expression): 由一些普通字符和特殊字符组成的,用以描述一种特定的字符规则的表达式 - 正则表达式常用于在一段文本中搜索.匹配或替换特定形式的文本.如:词语出现频率统计.验证字符串是否符合邮件格式.屏蔽一篇帖子中的限制性词语等 正则表达式初体验 - 验证用户输入的手机格式是否合法 二.JavaScript 定义正则表达式 普通字符 - 所有的单个大小写字母.数字都是一个正则表达式,用以匹配单个字符

JavaScript正则表达式快速判断技巧

原文:JavaScript正则表达式快速判断技巧 这里是JS的正则的一点心得,并不是最完整的规则汇总,更侧重实际运用中的快速判断,初学者接触正则之后往往会被一堆星号括号给弄晕,有了一些速判技巧就能从整体上把握从而不慌乱. JS正则快速判断技巧的核心就是:注意圆括号和问号.这已经能够应付大部分实际应用了. 一.圆括号 众所周知,正则中中括号表示范围,大括号表示重复次数,圆括号表示分组. 圆括号表示分组,但是分组内还有很多文章,细分一下: (1):圆括号本身表示分组,同时会保存匹配的项,这叫捕获性分

JavaScript正则表达式(三)

正则表达式可以: •测试字符串的某个模式.例如,可以对一个输入字符串进行测试,看在该字符串是否存在一个电话号码模式或一个信用卡号码模式.这称为数据有效性验证 •替换文本.可以在文档中使用一个正则表达式来标识特定文字,然后可以全部将其删除,或者替换为别的文字 •根据模式匹配从字符串中提取一个子字符串.可以用来在文本或输入字段中查找特定文字 正则表达式语法 一个正则表达式就是由普通字符(例如字符 a 到 z)以及特殊字符(称为元字符)组成的文字模式.该模式描述在查找文字主体时待匹配的一个或多个字符串