美文网首页
js高级程序设计(正则表达式),总结:

js高级程序设计(正则表达式),总结:

作者: cs0710 | 来源:发表于2017-07-09 15:45 被阅读10次
1.RegExp类型

(1)正则表达式有三个标志,即i, m, g

  • i代表的是匹配字符时忽略字符的大小写
  • m代表的是匹配字符时进行多行搜索,即搜索完一行,会进入下一行继续进行搜索
  • g代表的是匹配字符时进行全局搜索

(2)创建正则表达式的方式有两种:

*使用字面量进行创建

var regExp = /[ab]c/i;  //字面创建

*通过RegExp构造函数创建

注意:通过RegExp构造函数创建时,它有两个参数,分别为匹配的字符串和正则标识符,里面传入的参数均为字符串形式,而且对于有些元字符在通过实例进行创建时要进行双重转义

var regExp = new RegExp('[ab]c', 'i');  //通过new关键字创建

// 对匹配的字符串进行双重转义
var regExp = /\.ad/ig;  //对以.ad结尾的字符串进行全局搜索并且忽略大小写
// 在创建实例中的写法如下
var newRegExp = new RegExp('\\.ad', 'ig');  //对字符串中的元字符进行双重转义

(3)在循环里进行匹配字符串时,会有两种不同的方式,即字面量和创建实例的方式。以字面量进行出创建时,在循环中只会创建一次正则实例,当第一次匹配到时,再进行循环,就会从上一次匹配到的字符串开始进行向下匹配。而在以创建实例方式进行匹配时,它会在循环里每次都创建一次实例,即每次都会从开始重新匹配。

 var re = null, i;
 for(i = 0; i < 10; i++) {
    re = /cat/g;
      re.test('catage');  //只会创建一次实例,每次循环都会从上一次的结尾继续匹配
 }
 for(i = 0; i < 10; i++) {
      re = new RegExp('cat', g);  //每一次循环都会重新创建一次新的实例
    re.test('catage');
 }
2.RegExp实例的方法
test exec
返回的是布尔值,一般用在输入域的验证规则中。参数是要匹配的字符串。 返回的是匹配到的第一个匹配项的数组,匹配不到时返回null。它的参数是要匹配的字符串,它有两个属性,即index和input。index是匹配项在字符串中的位置,input是应用正则表达式要匹配的字符串。在非全局模式下匹配到的永远都是第一项,不管调用几次exec()方法,在全局模式下,匹配到的永远只有一项,再次调用exec()方法时,才会匹配到下一项。

下面是延伸的方法,在其他资料上查的,让自己长点见识

3.match()方法

这个方法以前用过的次数很少,首先是它的写法和以上两种就不一样,它的参数是正则表达式,用的是匹配的字符串进行调用match()方法的。它返回的结果就是包含匹配项的数组。

 var str = "visit W3cschool  a W3cschool bull";
 var reg = new RegExp("W3cschool",'g');
 var res = str.match(reg);  //W3cschool, W3cschool
4.search()方法

第一次见这个方法,在其他资料上查了一下这个方法,做个总结,说不定在某些场景上就用到了😆。该方法不会执行全局匹配,即忽略正则标识符g,参数是正则表达式。它总是从字符串的第一个位置进行匹配,它的作用是:永远返回匹配到的第一个匹配项在字符串中的位置(索引从0开始),匹配不到返回-1,没错!和你的indexOf()方法返回的规则一样。

 var str = "Visit W3School!";
 document.write(str.search(/W3School/));  //6

 var str = "Visit W3School!";
 document.write(str.search(/w3School/));  //-1

 var str="Visit W3School!";
 document.write(str.search(/w3School/i));  //6
5.replace()方法

该方法用两个参数都是必需的,参数一是正则表达式,参数二是要将匹配到的字符串进行替换的字符串。这个方法会返回一个替换后的新的字符串。

 var str="Visit W3School!";
 var reg = /W3School/;
 document.write(str.replace(reg, 'newStr'));  //Visit newStr

相关文章

  • JS转义字符

    摘自《JS高级程序设计》

  • JS笔记001(JS的组成、数据类型)

    内容归纳总结自《JavaScript高级程序设计》 1. JS的组成 1.ECMAScript核心 解释器2.D...

  • js高级程序设计,总结:

    1.Number()和parseInt()、parseFloat()之间的区别:(1)Number()适用于任何的...

  • DOM

    以下内容总结自《js高级程序设计 第三版》 今天来说说JS中的DOM以及DOM操作。 DOM是什么,做了什么? D...

  • js高级程序设计(正则表达式),总结:

    1.RegExp类型 (1)正则表达式有三个标志,即i, m, gi代表的是匹配字符时忽略字符的大小写m代表的是匹...

  • 前端知识体系

    1.JS基础 5 2.JS高级 5JS高级程序设计,各种api的应用,es6新增api的运用 3.CSS...

  • 函数表达式

    以下内容总结自《JS高级程序设计》第三版 什么是函数表达式? 函数表达式,是JS中定义函数的一种方式。在JS中,共...

  • Books

    一 JS书籍推荐JS高级程序设计 (望远镜)JS工作原理犀牛书二、行业书籍《人月神话》

  • 正则表达式

    JS高级技巧 本篇是看的《JS高级程序设计》第23章《高级技巧》做的读书分享。本篇按照书里的思路根据自己的理解和经...

  • js高级程序设计(日期),总结:

    1.Date时间类型 Date时间类型可以通过构造函数Date实现对时间的操作,如:获取时间戳等。今天看了一下明白...

网友评论

      本文标题:js高级程序设计(正则表达式),总结:

      本文链接:https://www.haomeiwen.com/subject/ztgjhxtx.html