每天一篇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实现浏览器菜单命令
Sep 05 Javascript
javascript之AJAX框架使用说明
Apr 24 Javascript
jquery Ajax 实现加载数据前动画效果的示例代码
Feb 07 Javascript
Javascript+CSS实现影像卷帘效果思路及代码
Oct 20 Javascript
深入分析Javascript跨域问题
Apr 17 Javascript
jQuery插件开发精品教程(让你的jQuery更上一个台阶)
Nov 07 Javascript
JavaScript头像上传插件源码分享
Mar 29 Javascript
JS判断是否在微信浏览器打开的简单实例(推荐)
Aug 24 Javascript
使用node.js中的Buffer类处理二进制数据的方法
Nov 26 Javascript
Vue.use源码学习小结
Jun 20 Javascript
node.JS事件机制与events事件模块的使用方法详解
Feb 06 Javascript
jdk1.8+vue elementui实现多级菜单功能
Sep 24 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关联数组快速排序的方法
2015/04/17 PHP
php数组函数array_key_exists()小结
2015/12/10 PHP
PHP简单实现数字分页功能示例
2016/08/24 PHP
laravel model模型处理之修改查询或修改字段时的类型格式案例
2019/10/17 PHP
用正则表达式 动态创建/增加css style script 兼容IE firefox
2009/03/10 Javascript
深入Javascript函数、递归与闭包(执行环境、变量对象与作用域链)使用详解
2013/05/08 Javascript
深入分析原生JavaScript事件
2014/12/29 Javascript
jQuery中DOM树操作之复制元素的方法
2015/01/23 Javascript
JavaScript对象反射用法实例
2015/04/17 Javascript
IE和Firefox之间在JavaScript语法上的差异
2016/04/22 Javascript
模板视图和AngularJS之间冲突的解决方法
2016/11/22 Javascript
谈谈Vue.js——vue-resource全攻略
2017/01/16 Javascript
使用vue实现grid-layout功能实例代码
2018/01/05 Javascript
妙用缓存调用链实现JS方法的重载
2018/04/30 Javascript
vuejs2.0运用原生js实现简单拖拽元素功能
2020/08/21 Javascript
vue返回上一页面时回到原先滚动的位置的方法
2018/12/20 Javascript
Vue keepAlive 数据缓存工具实现返回上一个页面浏览的位置
2019/05/10 Javascript
PHP读取远程txt文档到数组并实现遍历
2020/08/25 Javascript
[53:49]LGD vs Fnatic 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
Python遍历目录的4种方法实例介绍
2015/04/13 Python
在Django的上下文中设置变量的方法
2015/07/20 Python
python轻松查到删除自己的微信好友
2016/01/10 Python
Python正则表达式经典入门教程
2017/05/22 Python
Python通过命令开启http.server服务器的方法
2017/11/04 Python
python的slice notation的特殊用法详解
2019/12/27 Python
意大利奢华内衣制造商:Cosabella
2017/08/29 全球购物
全球性的奢侈品梦工厂:Forzieri(福喜利)
2019/02/20 全球购物
请说出几个常用的异常类
2013/01/08 面试题
应届生英语教师求职信
2013/11/05 职场文书
葛优非诚勿扰搞笑征婚台词
2014/03/17 职场文书
2014基层党员批评与自我批评范文
2014/09/24 职场文书
教师三严三实对照检查材料
2014/09/25 职场文书
2014年督导工作总结
2014/11/19 职场文书
离婚协议书范文2015
2015/01/26 职场文书
村官2015年度工作总结
2015/10/14 职场文书
开学季:喜迎新生,迎新标语少不了
2019/11/07 职场文书