每天一篇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 复制或插入Html的实现方法小结
May 19 Javascript
jQuery中使用了document和window哪些属性和方法小结
Sep 13 Javascript
jquery中使用$(#form).submit()重写提交表单无效原因分析及解决
Mar 25 Javascript
基于jquery实现拆分姓名的方法(纯JS版)
May 08 Javascript
jQuery如何取id有.的值一般的方法是取不到的
Apr 18 Javascript
jQuery给动态添加的元素绑定事件的方法
Mar 09 Javascript
Bootstrap3学习笔记(三)之表格
May 20 Javascript
jQuery监听文件上传实现进度条效果的方法
Oct 16 Javascript
JavaScript中关于for循环删除数组元素内容时出现的问题
Nov 21 Javascript
jQuery实现注册会员时密码强度提示信息功能示例
Sep 05 jQuery
JS限制输入框输入的实现代码
Jul 02 Javascript
React实现全选功能
Aug 25 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/01/01 PHP
PHP程序员的技术成长规划
2016/03/25 PHP
javascript 实现父窗口引用弹出窗口的值的脚本
2007/08/07 Javascript
ExtJS GridPanel 根据条件改变字体颜色
2010/03/08 Javascript
jQuery的实现原理的模拟代码 -4 重要的扩展函数 extend
2010/08/03 Javascript
jQuery的3种请求方式$.post,$.get,$.getJSON
2014/03/28 Javascript
js设置控件的隐藏与显示的两种方法
2014/08/21 Javascript
下拉框select的绑定示例
2014/09/04 Javascript
JS对象与json字符串格式转换实例
2014/10/28 Javascript
js变形金刚文字特效代码分享
2015/08/20 Javascript
全面解析Bootstrap图片轮播效果
2015/12/03 Javascript
微信小程序 九宫格实例代码
2017/01/21 Javascript
从零学习node.js之搭建http服务器(二)
2017/02/21 Javascript
js遍历获取表格内数据的方法(必看)
2017/04/06 Javascript
Angularjs 双向绑定时字符串的转换成数字类型的问题
2017/06/12 Javascript
Vue2.0学习之详解Vue 组件及父子组件通信
2017/12/12 Javascript
解决angular2在双向数据绑定时[(ngModel)]无法使用的问题
2018/09/13 Javascript
详解element-ui日期时间选择器的日期格式化问题
2019/04/08 Javascript
解决vue单页面修改样式无法覆盖问题
2019/08/05 Javascript
使用Typescript和ES模块发布Node模块的方法
2020/05/25 Javascript
小程序实现密码输入框
2020/11/16 Javascript
Python实现的tab文件操作类分享
2014/11/20 Python
Python标准库06之子进程 (subprocess包) 详解
2016/12/07 Python
python中利用队列asyncio.Queue进行通讯详解
2017/09/10 Python
我喜欢你 抖音表白程序python版
2019/04/07 Python
django 环境变量配置过程详解
2019/08/06 Python
python3实现弹弹球小游戏
2019/11/25 Python
pytorch动态网络以及权重共享实例
2020/01/06 Python
一款CSS3实现多功能下拉菜单(带分享按)的教程
2014/11/05 HTML / CSS
项目专员岗位职责
2013/12/04 职场文书
责任书格式范文
2014/07/28 职场文书
综治工作心得体会
2014/09/11 职场文书
党的群众路线专项整治方案
2014/11/03 职场文书
求职自荐信怎么写
2015/03/04 职场文书
入伍通知书
2015/04/23 职场文书
八年级作文之友情
2019/11/25 职场文书