每天一篇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+xml生成级联下拉框代码
Jul 24 Javascript
javascript控制swfObject应用介绍
Nov 29 Javascript
JQuery Highcharts 动态生成图表的方法
Nov 15 Javascript
JS中实现函数return多个返回值的实例
Feb 21 Javascript
angularjs实现天气预报功能
Jun 16 Javascript
Vue+webpack+Element 兼容问题总结(小结)
Aug 16 Javascript
如何利用ES6进行Promise封装总结
Feb 11 Javascript
如何通过setTimeout理解JS运行机制详解
Mar 23 Javascript
Vue项目总结之webpack常规打包优化方案
Jun 06 Javascript
微信小程序音乐播放器开发
Nov 20 Javascript
js String.prototype.trim字符去前后空格的扩展
Aug 23 Javascript
JavaScript 禁止用户保存图片的实现代码
Apr 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取二进制文件头快速判断文件类型的实现代码
2013/08/05 PHP
Laravel 创建可以传递参数 Console服务的例子
2019/10/14 PHP
JavaScript 版本自动生成文章摘要
2008/07/23 Javascript
Extjs列表详细信息窗口新建后自动加载解决方法
2010/04/02 Javascript
Jquery异步请求数据实例代码
2011/12/28 Javascript
使用javascript实现监控视频播放并打印日志
2015/01/05 Javascript
jQuery实现html元素拖拽
2015/07/21 Javascript
Javascript编程之继承实例汇总
2015/11/28 Javascript
APP中javascript+css3实现下拉刷新效果
2016/01/27 Javascript
在React框架中实现一些AngularJS中ng指令的例子
2016/03/06 Javascript
Js与Jq获取浏览器和对象值的方法
2016/03/18 Javascript
微信小程序开发之入门实例教程篇
2017/03/07 Javascript
用JS实现简单的登录验证功能
2017/07/28 Javascript
gulp教程_从入门到项目中快速上手使用方法
2017/09/14 Javascript
使用JS实现图片轮播的实例(前后首尾相接)
2017/09/21 Javascript
学习RxJS之JavaScript框架Cycle.js
2019/06/17 Javascript
微信公众号平台接口开发 菜单管理的实现
2019/08/14 Javascript
微信小程序 数据缓存实现方法详解
2019/08/26 Javascript
Python的ORM框架SQLObject入门实例
2014/04/28 Python
python web基础之加载静态文件实例
2018/03/20 Python
Python快速查找list中相同部分的方法
2018/06/27 Python
Python如何使用队列方式实现多线程爬虫
2020/05/12 Python
python实现逢七拍腿小游戏的思路详解
2020/05/26 Python
python 爬取B站原视频的实例代码
2020/09/09 Python
python获得命令行输入的参数的两种方式
2020/11/02 Python
Python如何使用神经网络进行简单文本分类
2021/02/25 Python
HTML5 Canvas 旋转风车绘制
2017/08/18 HTML / CSS
英国口碑最好的的维他命胶囊品牌:Myvitamins(有中文站)
2016/12/03 全球购物
商场主管竞聘书
2014/03/31 职场文书
学校群众路线专项整治方案
2014/10/31 职场文书
出纳试用期工作总结2015
2015/05/28 职场文书
国博复兴之路观后感
2015/06/02 职场文书
班主任工作经验交流会总结
2015/11/02 职场文书
vue首次渲染全过程
2021/04/21 Vue.js
django 认证类配置实现
2021/11/11 Python
yyds什么意思?90后已经听不懂00后讲话了……
2022/02/03 杂记