每天一篇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 相关文章推荐
JavaScript 验证码的实例代码(附效果图)
Mar 22 Javascript
使用JSLint提高JS代码质量方法分享
Dec 16 Javascript
js获取IP地址的方法小结
Jul 01 Javascript
jQuery中unbind()方法用法实例
Jan 19 Javascript
两种JS实现屏蔽鼠标右键的方法
Aug 20 Javascript
javascript实现随机生成DIV背景色
Jun 20 Javascript
JS+CSS3模拟溢出滚动效果
Aug 12 Javascript
微信小程序 侧滑删除(左滑删除)
May 23 Javascript
利用C/C++编写node.js原生模块的方法教程
Jul 07 Javascript
Element-UI踩坑之Pagination组件的使用
Oct 29 Javascript
vue2实现provide inject传递响应式
May 21 Vue.js
js 数组 fill() 填充方法
Nov 02 Javascript
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
用php获取远程图片并把它保存到本地的代码
2008/04/07 PHP
Gregarius中文日期格式问题解决办法
2008/04/22 PHP
frename PHP 灵活文件命名函数 frename
2009/09/09 PHP
PHP生成随机密码方法汇总
2015/08/27 PHP
使用PHP实现生成HTML静态页面
2015/11/18 PHP
(currentStyle)javascript为何有时用style得不到已设定的CSS的属性
2007/08/15 Javascript
解决js中window.open弹出的是上次的缓存页面问题
2013/12/29 Javascript
js实现大转盘抽奖游戏实例
2015/06/24 Javascript
jQuery 1.9.1源码分析系列(十五)之动画处理
2015/12/03 Javascript
延时加载JavaScript代码提高速度
2015/12/27 Javascript
BootStrap使用popover插件实现鼠标经过显示并保持显示框
2016/06/23 Javascript
JavaScript中Array的实用操作技巧分享
2016/09/11 Javascript
基于jPlayer三分屏的制作方法
2016/12/21 Javascript
JavaScript选取(picking)和反选(rejecting)对象的属性方法
2017/08/16 Javascript
集成vue到jquery/bootstrap项目的方法
2018/02/10 jQuery
vue-router传参用法详解
2019/01/19 Javascript
vue中引入mxGraph的步骤详解
2019/05/17 Javascript
微信jssdk踩坑之签名错误invalid signature
2020/05/19 Javascript
JQuery插件tablesorter表格排序实现过程解析
2020/05/28 jQuery
[39:11]DOTA2上海特级锦标赛C组资格赛#2 LGD VS Newbee第二局
2016/02/28 DOTA
Python使用xlrd模块操作Excel数据导入的方法
2015/05/26 Python
Python实现Smtplib发送带有各种附件的邮件实例
2017/06/05 Python
酷! 程序员用Python带你玩转冲顶大会
2018/01/17 Python
Python简单计算文件MD5值的方法示例
2018/04/11 Python
OPENCV去除小连通区域,去除孔洞的实例讲解
2018/06/21 Python
Python面向对象之静态属性、类方法与静态方法分析
2018/08/24 Python
python-django中的APPEND_SLASH实现方法
2019/06/21 Python
Python基于stuck实现scoket文件传输
2020/04/02 Python
Python参数传递及收集机制原理解析
2020/06/05 Python
css3中background新增的4个新的相关属性用法介绍
2013/09/26 HTML / CSS
结合 CSS3 transition transform 实现简单的跑马灯效果的示例
2018/02/07 HTML / CSS
应届生骨科医生求职信
2013/10/31 职场文书
童装店创业计划书
2014/01/09 职场文书
生日寿宴答谢词
2014/01/19 职场文书
优秀经理获奖感言
2014/03/04 职场文书
企业党员公开承诺书
2014/03/26 职场文书