每天一篇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 相关文章推荐
csdn 博客中实现运行代码功能实现
Aug 29 Javascript
javascript中比较字符串是否相等的方法
Jul 23 Javascript
jquery each的几种常用的使用方法示例
Jan 21 Javascript
js实现文字跟随鼠标移动而移动的方法
Feb 28 Javascript
基于javascript如何传递特殊字符
Nov 30 Javascript
学习javascript面向对象 理解javascript对象
Jan 04 Javascript
JavaScript中数组slice和splice的对比小结
Sep 22 Javascript
js 颜色选择插件
Jan 23 Javascript
利用Vue.js框架实现火车票查询系统(附源码)
Feb 27 Javascript
ES6中的箭头函数实例详解
Apr 06 Javascript
vue+webpack中配置ESLint
Nov 07 Javascript
Vue中Table组件行内右键菜单实现方法(基于 vue + AntDesign)
Nov 21 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 join函数应用
2011/05/04 PHP
支持中文的php加密解密类代码
2011/11/27 PHP
php获得url参数中具有&的值的方法
2014/03/05 PHP
php实现文件下载功能的几个代码分享
2014/05/10 PHP
PHP将回调函数作用到给定数组单元的方法
2014/08/19 PHP
PHP如何实现订单的延时处理详解
2017/12/30 PHP
Javascript实现关联数据(Linked Data)查询及注意细节
2013/02/22 Javascript
document.getElementById获取控件对象为空的解决方法
2013/11/20 Javascript
js的image onload事件使用遇到的问题
2014/07/15 Javascript
使用javascript实现简单的选项卡切换
2015/01/09 Javascript
IE下支持文本框和密码框placeholder效果的JQuery插件分享
2015/01/31 Javascript
跟我学习javascript的垃圾回收机制与内存管理
2015/11/23 Javascript
bootstrap中添加额外的图标实例代码
2017/02/15 Javascript
setTimeout函数的神奇使用
2017/02/26 Javascript
详解nodejs微信公众号开发——4.自动回复各种消息
2017/04/11 NodeJs
Javascript中Promise的四种常用方法总结
2017/07/14 Javascript
Node.js中流(stream)的使用方法示例
2017/07/16 Javascript
Vue基于NUXT的SSR详解
2017/10/24 Javascript
JS实现利用两个队列表示一个栈的方法
2017/12/13 Javascript
详解webpack3编译兼容IE8的正确姿势
2017/12/21 Javascript
json字符串传到前台input的方法
2018/08/06 Javascript
详解vue-cli3 中跨域解决方案
2019/04/10 Javascript
python正则表达式match和search用法实例
2015/03/26 Python
linux下python抓屏实现方法
2015/05/22 Python
深入理解Python中各种方法的运作原理
2015/06/15 Python
Python编程给numpy矩阵添加一列方法示例
2017/12/04 Python
matplotlib savefig 保存图片大小的实例
2018/05/24 Python
python程序控制NAO机器人行走
2019/04/29 Python
python安装本地whl的实例步骤
2019/10/12 Python
Python post请求实现代码实例
2020/02/28 Python
小学新教师培训方案
2014/02/03 职场文书
小学班干部竞选演讲稿
2014/04/24 职场文书
银行客户经理岗位职责
2015/04/09 职场文书
实习报告范文之电话客服岗位
2019/07/26 职场文书
Java日常练习题,每天进步一点点(38)
2021/07/26 Java/Android
什么是SOLID
2022/03/24 Javascript