每天一篇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代码
Aug 01 Javascript
JS动态添加与删除select中的Option对象(示例代码)
Dec 20 Javascript
js设置控件的隐藏与显示的两种方法
Aug 21 Javascript
Angularjs 与 bower安装和使用详解
May 11 Javascript
Bootstrap 模态框(Modal)带参数传值实例
Aug 20 Javascript
JS库之Particles.js中文开发手册及参数详解
Sep 13 Javascript
vue路由跳转时判断用户是否登录功能的实现
Oct 26 Javascript
AngularJS实现与后台服务器进行交互的示例讲解
Aug 13 Javascript
JavaScript中import用法总结
Jan 20 Javascript
详解基于Vue/React项目的移动端适配方案
Aug 23 Javascript
ES6函数实现排它两种写法解析
May 13 Javascript
vue组件中节流函数的失效的原因和解决方法
Dec 02 Vue.js
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与paypal整合方法
2010/11/28 PHP
PHP中include和require的区别实例分析
2017/05/07 PHP
提高 DHTML 页面性能
2006/12/25 Javascript
JavaScript 私有成员分析
2009/01/13 Javascript
JavaScript Sort 表格排序
2009/10/31 Javascript
javascript中substr,substring,slice.splice的区别说明
2010/11/25 Javascript
JavaScript 中的日期和时间及表示标准介绍
2013/08/21 Javascript
jQuery异步验证用户名是否存在示例代码
2014/05/21 Javascript
滚动条响应鼠标滑轮事件实现上下滚动的js代码
2014/06/30 Javascript
JavaScript常用验证函数实例汇总
2014/11/25 Javascript
浅谈javascript事件取消和阻止冒泡
2015/05/26 Javascript
jQuery实现仿美橙互联两级导航菜单效果完整实例
2015/09/17 Javascript
div实现自适应高度的textarea实现angular双向绑定
2017/01/08 Javascript
完美解决input[type=number]无法显示非数字字符的问题
2017/02/28 Javascript
vue监听scroll的坑的解决方法
2017/09/07 Javascript
jQuery使用bind函数实现绑定多个事件的方法
2017/10/11 jQuery
Javascript防止图片拉伸的自适应处理方法
2017/12/26 Javascript
使用Vue的slot插槽分发父组件内容实现高度复用、更加灵活的组件(推荐)
2018/05/01 Javascript
微信小程序实现动态显示和隐藏某个控件功能示例
2018/12/14 Javascript
Cocos2d实现刮刮卡效果
2018/12/20 Javascript
javascrit中undefined和null的区别详解
2019/04/07 Javascript
小程序实现搜索框
2020/06/19 Javascript
JavaScript实现猜数字游戏
2020/05/20 Javascript
Flask数据库迁移简单介绍
2017/10/24 Python
Python实现的远程登录windows系统功能示例
2018/06/21 Python
Python如何创建装饰器时保留函数元信息
2020/08/07 Python
晚宴邀请函范文
2014/01/15 职场文书
小学生关于梦想的演讲稿
2014/08/22 职场文书
党员“四风”问题批评与自我批评思想汇报
2014/10/06 职场文书
个人剖析材料及整改措施
2014/10/07 职场文书
安娜卡列尼娜观后感
2015/06/11 职场文书
2015大学生入党个人自传
2015/06/26 职场文书
2015年主婚人婚礼致辞
2015/07/28 职场文书
先进工作者主要事迹材料
2015/11/03 职场文书
小学数学教学反思范文
2016/02/16 职场文书
vue项目两种方式实现竖向表格的思路分析
2021/04/28 Vue.js