一、正则表达式对象的创建
方法一:
使用构造函数的形式:

    var pattern = new RegExp('正则表达式','修饰符');
var pattern = new RegExp('hello','igm'); //需要匹配的字串为'hello'

方法二:
使用字面量的形式:

    var pattern = /正则表达式/修饰符;
var pattern = /hello/igm; //需要匹配的字串为'hello'

正则表达式中的修饰符:
i    (ignore case)    匹配时不区分字母的大小写 【不区分大小写】
g    (global)    匹配时整个字符串中查找 【全局】
m    (multiline)       匹配时多行查找 【多行】

二、正则表达式原型对象中的属性及方法
⑴原型属性:
RegExp.prototype.global 【pattern.global】
布尔值,表明这个正则表达式是否带有修饰符g

RegExp.prototype.ignoreCase 【pattern.ignore】
布尔值,表明这个正则表达式是否带有修饰符i

RegExp.prototype.multiline 【pattern.multiline】
布尔值,表明这个正则表达式是否带有修饰符m

RegExp.prototype.lastIndex
如果匹配模式带有g,使用test()和exec()方法时,这个属性会存储在整个字符串中下一次检索的开始位置;
如果没有带g,则lastIndex一直为0

RegExp.prototype.source 【pattern.source】
包含正则表达式文本

⑵原型方法:
exec()方法和test()方法与lastIndex间关系影响:
a、如果正则表达式中有修饰符"g",pattern对象中会维护lastIndex属性,记录下一次开始的位置,当第二次执行exec的时候,从lastIndex开始检索。
b、如果正则表达式中没有修饰符"g",不会维护lastIndex属性,每次执行从开始位置0开始检索

1、RegExp.prototype.exec():【返回值:匹配到的结果数组或null】
var result = pattern.exec(str);

2、RegExp.prototype.test():【返回值:匹配到返回true;否则,返回false】
var pattern = pattern.test(str);

3、RegExp.prototype.toString():
将正则表达式对象转化为相应的字符串形式

三、Javascript中String字符串对正则表达式的支持的相关方法
1、search()
str.search(正则表达式);
a.如果参数不为正则表达式,则先通过RegExp将其转换为构造函数。
b.不支持全局检索,返回第一个与之匹配的子串的位置,如果找不到匹配的子串,返回-1。

2、match() 【最常用的正则表达式方法】
str.match(正则表达式);
a.返回由匹配结果组成的数组或者null。

注意:【正则表达式是否有g修饰时】
a.没有g修饰符时,就不是全局匹配。这时,数组的第一个元素就为匹配的字符串,
剩余的元素则是由正则表达式中用圆括号括起来的匹配到的子表达式。
eg:

    console.log("HELLO world hello".match(/(hello)/i));  //["HELLO","HELLO"] 前者为匹配到的字符串,后者为由正则表达式中用圆括号括起来的子表达式【与匹配串样式相同】

b.有g修饰符时,则该方法返回的数组包含字符串中所有匹配结果。
eg:

    "1 plus 2 equals 3".match(/\d+/g) //返回["1","2","3"]

3、replace() 【用以执行检索和替换操作】
str.replace(正则表达式,要替换的字符串);
eg:

    "helloWorld HEllo".replace(/hello/gi,“JavaScript”); //"JavaScriptWorld JavaScript"

4、split() 【字符串转成数组】
a.参数可以为字符串,也可以为正则表达式
b.以参数字串或正则表达式形式分割字符串,并将后面分割的部分组成返回数组中的元素
eg:

    "1,2,3,4,5".split(","); //["1","2","3","4","5"] 以,分割字符串并返回一个新数组
"1, 2, 3, 4, 5".split(/\s*,\s*/); //["1","2","3","4","5"] 允许分隔符左右两边留有空白

四、正则表达式中的贪婪模式与非贪婪模式(懒惰模式)    【默认为贪婪模式】
贪婪模式:在正则表达式中单个模块含有次数情况时:优先选择最多次数进行匹配
非贪婪模式:在正则表达式中单个模块含有次数情况时:优先选择最少次数进行匹配
贪婪模式转化为非贪婪模式:
在正则表达式单个模块设置的次数后面加?,这样可以将贪婪模式转化为非贪婪模式
eg:

    var str = 'hello world javaScript';
var pattern = /\w{3,8}/i;
console.log(pattern.exec(str)); //贪婪模式:结果为['hello']
var pattern = /\w{3,8}?/i;
console.log(pattern.exec(str)); //非贪婪模式:结果为['hel']

js正则表达式(七)的更多相关文章

  1. [转]js 正则表达式

    一.正则表达式中包括的元素 1.原子(普通字符:a-z A-Z 0-9 .原子表. 转义字符) 2.元字符 (有特殊功能的字符) 3.模式修正符 (系统内置部分字符 i .m.S.U…) 二.正则表达 ...

  2. JS正则表达式完整教程

    JS正则表达式完整教程(略长) 引言 亲爱的读者朋友,如果你点开了这篇文章,说明你对正则很感兴趣. 想必你也了解正则的重要性,在我看来正则表达式是衡量程序员水平的一个侧面标准. 关于正则表达式的教程, ...

  3. JS正则表达式常用总结

    正则表达式的创建 JS正则表达式的创建有两种方式: new RegExp() 和 直接字面量. //使用RegExp对象创建 var regObj = new RegExp("(^\\s+) ...

  4. 使用外部web组件-----easyUI、jQueryUI、Bootstrap、js正则表达式

    1.使用外部web组件,以Bootstrap为例 <head> <link rel='stylesheet'  href='bootstrap-3.3.0-dist/dist/css ...

  5. js正则表达式图形化工具-rline

    github地址:https://github.com/finance-sh/rline 在线demo: http://lihuazhai.com/demo/test.html 这是一个js正则表达式 ...

  6. Python之路-(js正则表达式、前端页面的模板套用、Django基础)

    js正则表达式 前端页面的模板套用 Django基础 js正则表达式: 1.定义正则表达式 /.../  用于定义正则表达式 /.../g 表示全局匹配 /.../i 表示不区分大小写 /.../m ...

  7. JS正则表达式大全

    转自:http://wenku.baidu.com/link?url=3y930kC7F6D3wQdMjQ3fVDmiA9Wfebs_QK0UB3N3mFaEoKg4ytZORPopxufeYA6si ...

  8. js正则表达式replace里有变量的解决方法用到RegExp类

    一直比较害怕使用正则表达式,貌似很深奥很复杂的样子,所以在用js操作字符串的时候,我最多使用的是replace.split.substring.indexOf等函数,这些函数有时候需要多次叠加使用,但 ...

  9. JS正则表达式验证账号、手机号、电话和邮箱

    JS正则表达式验证账号.手机号.电话和邮箱 效果体验:http://keleyi.com/keleyi/phtml/jstexiao/15.htm 验证帐号是否合法 验证规则:字母.数字.下划线组成, ...

随机推荐

  1. Transform the vot dataset into 4 corner format

    Transform the vot dataset into 4 corner format Matlab code to change the 8 value ground truth into 4 ...

  2. Token 安全登陆防止窃取

    HTTP 协议是无状态的 在web中使用cookie+session的技术来保持用户登陆的状态 移动端使用token来保持用户登陆状态由于token在网络中传输,很容易被 中间人获取,进而模拟用户进行 ...

  3. 大数据 Hibernate

    大数据 Hibernate - 国内版 Binghttps://cn.bing.com/search?FORM=U227DF&PC=U227&q=%E5%A4%A7%E6%95%B0% ...

  4. LR 算法总结--斯坦福大学机器学习公开课学习笔记

    在有监督学习里面有几个逻辑上的重要组成部件[3],初略地分可以分为:模型,参数 和 目标函数.(此部分转自 XGBoost 与 Boosted Tree) 一.模型和参数   模型指给定输入xi如何去 ...

  5. C# INI配置文件读写类

    ini是一种很古老的配置文件,C#操作ini文件借助windows底层ini操作函数,使用起来很方便: public class IniHelper { [DllImport("kernel ...

  6. python初级(302) 6 对象(三)

    一.复习 1.什么是魔法方法? 2.什么是类的初始化函数? 二.什么是self 使用一个类可以创建多个对象实例,例如: ball1 = Ball("red", "smal ...

  7. java继承实现的基本原理

    方法调用的过程 寻找要执行的实例方法的时候,是从对象的实际类型信息开始查找的,找不到的时候,再查找父类类型信息. 动态绑定,而动态绑定实现的机制就是根据对象的实际类型查找要执行的方法,子类型中找不到的 ...

  8. 【bat批处理】批量执行某个文件夹下的所有sql文件bat批处理

    遍历文件夹下所有的sql文件,然后命令行执行 for /r "D:\yonyou\UBFV60\U9.VOB.Product.Other" %%a in (*.sql) do ( ...

  9. dell服务器在bios中指定raid5的热备盘

    一.创建raid5 二.指定热备盘   选择第15块磁盘作为上面创建的raid5的热备盘 选中 选中我们刚创建的raid5,点击OK

  10. LeetCode 406. 根据身高重建队列(Queue Reconstruction by Height) 46

    406. 根据身高重建队列 406. Queue Reconstruction by Height 题目描述 假设有打乱顺序的一群人站成一个队列.每个人由一个整数对 (h, k) 表示,其中 h 是这 ...