每天一篇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 相关文章推荐
window.location.reload()方法刷新页面弹出要再次显示该网页对话框
Apr 24 Javascript
jquery选择器之属性过滤选择器详解
Jan 27 Javascript
js读写json文件实例代码
Oct 21 Javascript
基于jquery实现日历签到功能
Sep 11 Javascript
IE和Firefox之间在JavaScript语法上的差异
Apr 22 Javascript
js实现PC端根据IP定位当前城市地理位置
Feb 22 Javascript
详解Vue.js基于$.ajax获取数据并与组件的data绑定
May 26 Javascript
简述Angular 5 快速入门
Nov 04 Javascript
vue展示dicom文件医疗系统的实现代码
Aug 27 Javascript
快速对接payjq的个人微信支付接口过程解析
Aug 15 Javascript
jquery实现购物车基本功能
Oct 25 jQuery
JS高级程序设计之class继承重点详解
Jul 07 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小型企业库存管理系统的设计与实现代码
2011/05/16 PHP
基于PHP选项与信息函数的使用详解
2013/05/10 PHP
php生成年月日下载列表的方法
2015/04/24 PHP
PHP使用Redis实现Session共享的实现示例
2019/05/12 PHP
mysqli扩展无法在PHP7下升级问题的解决
2019/09/10 PHP
PHP PDO和消息队列的个人理解与应用实例分析
2019/11/25 PHP
仿服务器端脚本方式的JS模板实现方法
2007/04/27 Javascript
Jquery Ajax学习实例6 向WebService发出请求,返回DataSet(XML) 异步调用
2010/03/18 Javascript
使用js检测浏览器是否支持html5中的video标签的方法
2014/03/12 Javascript
jQuery ui实现动感的圆角渐变网站导航菜单效果代码
2015/08/26 Javascript
JavaScript中removeChild 方法开发示例代码
2016/08/15 Javascript
jQuery实现的自定义滚动条实例详解
2016/09/20 Javascript
Vue如何引入远程JS文件
2017/04/20 Javascript
webpack配置文件和常用配置项介绍
2017/04/28 Javascript
Vuex和前端缓存的整合策略详解
2017/05/09 Javascript
JavaScript之Map和Set_动力节点Java学院整理
2017/06/29 Javascript
Three.js 再探 - 写一个微信跳一跳极简版游戏
2018/01/04 Javascript
关于Angularjs中自定义指令一些有价值的细节和技巧小结
2018/04/22 Javascript
JavaScript继承定义与用法实践分析
2018/05/28 Javascript
微信小程序生成分享海报方法(附带二维码生成)
2019/03/29 Javascript
JS实现图片幻灯片效果代码实例
2020/05/21 Javascript
[49:13]DOTA2上海特级锦标赛C组资格赛#1 OG VS LGD第一局
2016/02/27 DOTA
在Python中使用sort()方法进行排序的简单教程
2015/05/21 Python
使用Python编写简单的端口扫描器的实例分享
2015/12/18 Python
浅谈Python数据类型之间的转换
2016/06/08 Python
深入解析Python中的__builtins__内建对象
2016/06/21 Python
Python使用PDFMiner解析PDF代码实例
2017/03/27 Python
python线程安全及多进程多线程实现方法详解
2019/09/27 Python
python3.x 生成3维随机数组实例
2019/11/28 Python
python基于event实现线程间通信控制
2020/01/13 Python
Python Pygame实现俄罗斯方块
2021/02/19 Python
英国户外服装品牌:Craghoppers
2019/04/25 全球购物
Perfume’s Club法国站:购买香水和化妆品
2019/05/02 全球购物
个人批评与自我批评材料
2014/10/17 职场文书
护士医德考评自我评价
2015/03/03 职场文书
在NumPy中深拷贝和浅拷贝相关操作的定义和背后的原理
2022/04/14 Python