每天一篇javascript学习小结(RegExp对象)


Posted in Javascript onNovember 17, 2015

1、正则表达式test方法

var text = "cat, bat, sat, fat";  
  var pattern = /.at/;
  
  if (pattern.test(text)){
   alert("The pattern was matched.");
  }

2、正则的toString()方法

var pattern = new RegExp("\\[bc\\]at", "gi");
  alert(pattern.toString()); // /\[bc\]at/gi
  alert(pattern.toLocaleString()); // /\[bc\]at/gi

3、RegExp Constructor(构造函数) Properties(属性)

var text = "this has been a short summer";
  var pattern = /(.)hort/g;
  
  /*
   * Note: Opera doesn't support input, lastMatch, lastParen, or multiline.
   * Internet Explorer doesn't support multiline.
   */  
  if (pattern.test(text)){
   alert(RegExp.input);    //this has been a short summer
   alert(RegExp.leftContext);   //this has been a   
   alert(RegExp.rightContext);  // summer
   alert(RegExp.lastMatch);   //short
   alert(RegExp.lastParen);   //s
   alert(RegExp.multiline);   //false
  }
  input 
 保存被搜索的字符串
  index 

 保存匹配的首字符的位置
  lastIndex 
  保存匹配的字符串下一个字符的位置
  lastMatch 
  保存匹配到的字符串
  lastParen 
  保存最后一个被匹配的字符串(最后一个括号内的内容)
  leftContext 
 保存匹配字符串左边的内容
  rightContext   保存匹配字符串右边的内容
  $1~$9   保存最开始的9个子匹配(括号中的内容)
var text = "this has been a short summer";
  var pattern = /(.)hort/g;
  
  /*
   * Note: Opera doesn't support short property names.
   * Internet Explorer doesn't support multiline.
   */  
  if (pattern.test(text)){
   alert(RegExp.$_);    //this has been a short summer
   alert(RegExp["$`"]);   //this has been a   
   alert(RegExp["$'"]);   // summer
   alert(RegExp["$&"]);   //short
   alert(RegExp["$+"]);   //s
   alert(RegExp["$*"]);   //false
  }
  * 分为长属性名和短属性名
  * input   $_  最近一次要匹配的字符串
  * lastMatch  $&  最近一次的匹配项
  * lastParen  $+  最近一次匹配的捕获组
  * leftContext  $`  input字符串中lastMatch之前的文本
  * multiline  $*  布尔值,表示是否所有表达式都使用多行模式。
  * rightContext $'  input字符串中lastMatch之后的文本

4、正则$1.....$9

var text = "this has been a short summer";
  var pattern = /(..)or(.)/g;
    
  if (pattern.test(text)){
   alert(RegExp.$1);  //sh
   alert(RegExp.$2);  //t
  }
  每当产生一个带括号的成功匹配时,$1...$9 属性的值就被修改。 
  可以在一个正则表达式模式中指定任意多个带括号的子匹配,但只能存储最新的九个。

5、RegExp exec() 

var text = "mom and dad and baby";
  
  var pattern = /mom( and dad( and baby)?)?/gi;
  var matches = pattern.exec(text);
  
  alert(matches.index); //0 第一个被匹配到的位置
  alert(matches.input); //"mom and dad and baby" 匹配的原始字符串
  alert(matches[0]);  //"mom and dad and baby" 匹配的第一个值
  alert(matches[1]);  //" and dad and baby" 匹配的第二个值
  alert(matches[2]);  //" and baby"   匹配的第三个值
var text = "cat, bat, sat, fat";  
  var pattern1 = /.at/;
  
  var matches = pattern1.exec(text);  
  alert(matches.index); //0
  alert(matches[0]);  //"cat"
  alert(pattern1.lastIndex);//0

  matches = pattern1.exec(text);  
  alert(matches.index); //0
  alert(matches[0]);  //"cat"
  alert(pattern1.lastIndex);//0

  var pattern2 = /.at/g;
  
  var matches = pattern2.exec(text);  
  alert(matches.index); //0
  alert(matches[0]);  //"cat"
  alert(pattern2.lastIndex);//0

  matches = pattern2.exec(text);  
  alert(matches.index); //5
  alert(matches[0]);  //"bat"
  alert(pattern2.lastIndex);//0

6、RegExp实例属性

var pattern1 = /\[bc\]at/i;
  
  alert(pattern1.global);  //false //是否设置全局查找
  alert(pattern1.ignoreCase); //true 是否忽略大小写
  alert(pattern1.multiline); //false 是否设置多行查找
  alert(pattern1.lastIndex); //0  一个整数,标示开始下一次匹配的字符位置。
  alert(pattern1.source);  //"\[bc\]at" 正则表达式的源文本。

  var pattern2 = new RegExp("\\[bc\\]at", "i");
  
  alert(pattern2.global);  //false
  alert(pattern2.ignoreCase); //true
  alert(pattern2.multiline); //false
  alert(pattern2.lastIndex); //0
  alert(pattern2.source);  //"\[bc\]at"

以上就是今天的javascript学习小结,之后每天还会继续更新,希望大家继续关注。

Javascript 相关文章推荐
js本身的局限性 别让javascript做太多事
Mar 23 Javascript
JavaScript下利用fso判断文件是否存在的代码
Dec 11 Javascript
高性能Javascript笔记 数据的存储与访问性能优化
Aug 02 Javascript
JS localStorage实现本地缓存的方法
Jun 22 Javascript
jQuery回车实现登录简单实现
Aug 20 Javascript
JavaScript中的变量定义与储存介绍
Dec 31 Javascript
基于javascript实现图片预加载
Jan 05 Javascript
JavaScript知识点总结之如何提高性能
Jan 15 Javascript
Angularjs的$http异步删除数据详解及实例
Jul 27 Javascript
基于node下的http小爬虫的示例代码
Jan 11 Javascript
简述vue状态管理模式之vuex
Aug 29 Javascript
使用jQuery实现购物车
Oct 29 jQuery
node.js抓取并分析网页内容有无特殊内容的js文件
Nov 17 #Javascript
js全选按钮的实现方法
Nov 17 #Javascript
javascript实现省市区三级联动下拉框菜单
Nov 17 #Javascript
javascript中return,return true,return false三者的用法及区别
Nov 17 #Javascript
jquery表单验证需要做些什么
Nov 17 #Javascript
今天抽时间给大家整理jquery和ajax的相关知识
Nov 17 #Javascript
jquery验证手机号是否正确实例讲解
Nov 17 #Javascript
You might like
3.从实例开始
2006/10/09 PHP
thinkphp3查询mssql数据库乱码解决方法分享
2014/02/11 PHP
php微信公众号开发(2)百度BAE搭建和数据库使用
2016/12/15 PHP
jquery cookie插件代码类
2009/05/26 Javascript
JavaScript类和继承 constructor属性
2010/03/04 Javascript
$.get获取一个文件的内容示例代码
2013/09/11 Javascript
JS中类或对象的定义说明
2014/03/10 Javascript
百度地图API之本地搜索与范围搜索
2015/07/30 Javascript
JavaScript实现带箭头标识的多级下拉菜单效果
2015/08/27 Javascript
如何用JavaScript实现动态修改CSS样式表
2016/05/20 Javascript
bootstrap模态框消失问题的解决方法
2016/12/02 Javascript
详解VueJs中的V-bind指令
2018/05/03 Javascript
前后端如何实现登录token拦截校验详解
2018/09/03 Javascript
Node.js 实现远程桌面监控的方法步骤
2019/07/02 Javascript
Vue通过provide inject实现组件通信
2020/09/03 Javascript
Python BeautifulSoup中文乱码问题的2种解决方法
2014/04/22 Python
Python 实现随机数详解及实例代码
2017/04/15 Python
5个很好的Python面试题问题答案及分析
2018/01/19 Python
Python合并多个Excel数据的方法
2018/07/16 Python
Python Pexpect库的简单使用方法
2019/01/29 Python
Python获取数据库数据并保存在excel表格中的方法
2019/06/12 Python
python使用flask与js进行前后台交互的例子
2019/07/19 Python
python 按钮点击关闭窗口的实现
2020/03/04 Python
利用keras使用神经网络预测销量操作
2020/07/07 Python
super关键字的用法
2012/04/10 面试题
淘宝客服自我总结鉴定
2014/01/25 职场文书
劳动竞赛活动方案
2014/02/20 职场文书
《三个小伙伴》教学反思
2014/04/11 职场文书
启动仪式策划方案
2014/06/14 职场文书
自我管理的活动方案
2014/08/25 职场文书
项目转让协议书
2014/10/27 职场文书
肖申克的救赎观后感
2015/06/02 职场文书
高中班主任培训心得体会
2016/01/07 职场文书
《吃水不忘挖井人》教学反思
2016/02/22 职场文书
python解决12306登录验证码的实现
2021/04/18 Python
Windows Server 2019 域控制器安装图文教程
2022/04/28 Servers