每天一篇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 12 Javascript
jquery select(列表)的操作(取值/赋值)
Mar 16 Javascript
jquery序列化form表单使用ajax提交后处理返回的json数据
Mar 03 Javascript
javascript实时获取鼠标坐标值并显示的方法
Apr 30 Javascript
javascript模拟C#格式化字符串
Aug 26 Javascript
Vue.js原理分析之observer模块详解
Feb 17 Javascript
浅谈js中startsWith 函数不能在任何浏览器兼容的问题
Mar 01 Javascript
微信小程序五子棋游戏AI实现方法【附demo源码下载】
Feb 20 Javascript
javascript的delete运算符知识点总结
Nov 19 Javascript
JavaScript简易计算器制作
Jan 17 Javascript
基于Echarts图表在div动态切换时不显示的解决方式
Jul 20 Javascript
解决vue项目 build之后资源文件找不到的问题
Sep 12 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来自动调用不同服务器上的flash
2006/10/09 PHP
hadoop常见错误以及处理方法详解
2013/06/19 PHP
在Nginx上部署ThinkPHP项目教程
2015/02/02 PHP
php实现专业获取网站SEO信息类实例
2015/04/02 PHP
PHP时间戳格式全部汇总 (获取时间、时间戳)
2016/06/13 PHP
PHP中的密码加密的解决方案总结
2016/10/26 PHP
redis查看连接数及php模拟并发创建redis连接的方法
2016/12/15 PHP
Javascript与vbscript数据共享
2007/01/09 Javascript
javascript对下拉列表框(select)的操作实例讲解
2013/11/29 Javascript
require.js的用法详解
2015/10/20 Javascript
很棒的Bootstrap选项卡切换效果
2016/07/01 Javascript
jquery.serialize() 函数语法及简单实例
2016/07/08 Javascript
利用Angular.js限制textarea输入的字数
2016/10/20 Javascript
node.js学习之base64编码解码
2016/10/21 Javascript
jquery实现input框获取焦点的方法
2017/02/06 Javascript
Javascript 类型转换、封闭函数及常见内置对象操作示例
2019/11/15 Javascript
使用Bootstrap做一个朝代历史表
2019/12/10 Javascript
基于JavaScript实现贪吃蛇游戏
2020/03/16 Javascript
javascript使用canvas实现饼状图效果
2020/09/08 Javascript
[41:37]DOTA2北京网鱼队选拔赛——冲击职业之路
2015/04/13 DOTA
在Python中使用SQLite的简单教程
2015/04/29 Python
python与php实现分割文件代码
2017/03/06 Python
PyQt5每天必学之进度条效果
2018/04/19 Python
利用python的socket发送http(s)请求方法示例
2018/05/07 Python
Python if语句知识点用法总结
2018/06/10 Python
Python3将ipa包中的文件按大小排序
2020/04/17 Python
Python爬虫如何破解JS加密的Cookie
2020/11/19 Python
css3边框_动力节点Java学院整理
2017/07/11 HTML / CSS
Hotels.com中国区:好订网
2016/08/18 全球购物
中专毕业个人的自荐信格式
2013/09/21 职场文书
《罗布泊,消逝的仙湖》教学反思
2014/03/01 职场文书
作风建设年度心得体会
2014/10/29 职场文书
2015年感恩父亲节演讲稿
2015/03/19 职场文书
医院病假条怎么写
2015/08/17 职场文书
应届生们该怎么书写求职信?
2019/07/05 职场文书
Spring Data JPA的Audit功能审计数据库的变更
2021/06/26 Java/Android