每天一篇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 相关文章推荐
jQuery Ajax 全解析
Feb 08 Javascript
js判断横竖屏及禁止浏览器滑动条示例
Apr 29 Javascript
jQuery实现数字加减效果汇总
Dec 16 Javascript
七夕情人节丘比特射箭小游戏
Aug 20 Javascript
js+css实现文字散开重组动画特效代码分享
Aug 21 Javascript
Bootstrap实现圆角、圆形头像和响应式图片
Dec 14 Javascript
javascript实现用户点击数量统计
Dec 25 Javascript
JS简单获取当前日期和农历日期的方法
Apr 17 Javascript
使用原生js+canvas实现模拟心电图的实例
Sep 20 Javascript
Vue项目分环境打包的实现步骤
Apr 02 Javascript
layui添加动态菜单与选项卡
Jul 26 Javascript
详解关闭令人抓狂的ESlint 语法检测配置方法
Oct 28 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 程序员也要学会使用“异常”
2009/06/16 PHP
PHP 编写大型网站问题集
2010/05/07 PHP
PHP操作mysql函数详解,mysql和php交互函数
2011/05/19 PHP
PHP 实现判断用户是否手机访问
2015/01/21 PHP
php根据某字段对多维数组进行排序的方法
2015/03/07 PHP
php单链表实现代码分享
2016/07/04 PHP
PHP简单读取PDF页数的实现方法
2016/07/21 PHP
CI框架(CodeIgniter)公共模型类定义与用法示例
2017/08/10 PHP
PHP设计模式之模板模式定义与用法详解
2018/12/20 PHP
JS构建页面的DOM节点结构的实现代码
2011/12/09 Javascript
关于Javascript作用域链的八点总结
2013/12/06 Javascript
jQuery中extend函数详解
2015/02/13 Javascript
使用jQuery操作HTML的table表格的实例解析
2016/03/13 Javascript
AngularJs bootstrap搭载前台框架——准备工作
2016/09/01 Javascript
bootstrap实现每隔5秒自动轮播效果
2016/12/20 Javascript
原生JS下拉加载插件分享
2016/12/26 Javascript
vue2.0 + ele的循环表单及验证字段方法
2018/09/18 Javascript
vue(2.x,3.0)配置跨域代理
2019/11/27 Javascript
iSlider手机端图片滑动切换插件使用详解
2019/12/24 Javascript
JavaScript使用prototype属性实现继承操作示例
2020/05/22 Javascript
VUE异步更新DOM - 用$nextTick解决DOM视图的问题
2020/11/06 Javascript
[46:04]Liquid vs VP Supermajor决赛 BO 第四场 6.10
2018/07/05 DOTA
浅谈Python Opencv中gamma变换的使用详解
2018/04/02 Python
通过pykafka接收Kafka消息队列的方法
2018/12/27 Python
sklearn-SVC实现与类参数详解
2019/12/10 Python
TensorFlow实现打印每一层的输出
2020/01/21 Python
解决tensorflow打印tensor有省略号的问题
2020/02/04 Python
python跨文件使用全局变量的实现
2020/11/17 Python
HTML5之SVG 2D入门13—svg对决canvas及长处和适用场景分析
2013/01/30 HTML / CSS
Clarks西班牙官方在线商店:clarks鞋
2019/05/03 全球购物
写好求职应聘自荐信的三部曲
2013/09/21 职场文书
市场营销专业毕业生自荐信
2013/11/02 职场文书
法学函授自我鉴定
2014/02/06 职场文书
结婚周年感言
2014/02/24 职场文书
货车司机岗位职责
2014/03/18 职场文书
2016党员读书思廉心得体会
2016/01/23 职场文书