每天一篇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 相关文章推荐
在textarea中屏蔽js的某个function的javascript代码
Apr 20 Javascript
IE和Firefox下event事件杂谈
Dec 18 Javascript
在网站上应该用的30个jQuery插件整理
Nov 03 Javascript
javascripit实现密码强度检测代码分享
Dec 12 Javascript
表单验证插件Validation应用的实例讲解
Oct 10 Javascript
JQuery导航菜单选择特效
Apr 11 Javascript
Bootstrap按钮组件详解
Apr 26 Javascript
郁闷!ionic中获取ng-model绑定的值为undefined如何解决
Aug 27 Javascript
Bootstrap输入框组件简单实现代码
Mar 06 Javascript
关于定制FileField中的上传文件名称问题
Aug 22 Javascript
详解django模板与vue.js冲突问题
Jul 07 Javascript
浅谈vue 多个变量同时赋相同值互相影响
Aug 05 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取整函数ceil,floo,round的用法及介绍
2013/08/31 PHP
CodeIgniter框架提示Disallowed Key Characters的解决办法
2014/04/21 PHP
php将12小时制转换成24小时制的方法
2015/03/31 PHP
Smarty模板变量调节器用法分析
2016/05/23 PHP
ecshop适应在PHP7的修改方法解决报错的实现
2016/11/01 PHP
thinkphp5框架实现数据库读取的数据转换成json格式示例
2019/10/10 PHP
动态加载iframe
2006/06/16 Javascript
jquery 锁定弹出层实现代码
2010/02/23 Javascript
Javascript Cookie读写删除操作的函数
2010/03/02 Javascript
JavaScript实用技巧(一)
2010/08/16 Javascript
在浏览器中获取当前执行的脚本文件名的代码
2011/07/19 Javascript
JavaScript获取和设置CheckBox状态的简单方法
2013/07/05 Javascript
JavaScript中的运算符种类及其规则介绍
2013/09/26 Javascript
关于jquery的多个选择器的使用示例
2013/10/18 Javascript
javascript 拷贝节点cloneNode()使用介绍
2014/04/03 Javascript
js实现文章文字大小字号功能完整实例
2014/11/01 Javascript
在Ubuntu系统上安装Node.JS的教程
2015/10/15 Javascript
纯JavaScript手写图片轮播代码
2016/10/20 Javascript
基于JS实现仿京东搜索栏随滑动透明度渐变效果
2017/07/10 Javascript
webpack多页面开发实践
2017/12/18 Javascript
Vue官网todoMVC示例代码
2018/01/29 Javascript
vue地区选择组件教程详解
2018/05/04 Javascript
详解js模板引擎art template数组渲染的方法
2018/10/09 Javascript
JS运算符简单用法示例
2020/01/19 Javascript
JavaScript 实现轮播图特效的示例
2020/11/05 Javascript
在Mac OS上搭建Python的开发环境
2015/12/24 Python
用python处理MS Word的实例讲解
2018/05/08 Python
Selenium执行完毕未关闭chromedriver/geckodriver进程的解决办法(java版+python版)
2020/12/07 Python
FOREO斐珞尔官方旗舰店:LUNA露娜洁面仪
2018/03/11 全球购物
荷兰在线体育用品商店:Avantisport.nl
2018/07/04 全球购物
世界上第一个水枕头:Mediflow
2018/12/06 全球购物
俄罗斯女装店:12storeez
2019/10/25 全球购物
班级聚会策划书
2014/01/16 职场文书
单位绩效考核方案
2014/05/11 职场文书
缓存替换策略及应用(以Redis、InnoDB为例)
2021/07/25 Redis
xhunter1.sys可以删除嘛? win11提示xhunter1.sys驱动不兼容解决办法
2022/09/23 数码科技