每天一篇javascript学习小结(RegExp对象)

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学习小结,之后每天还会继续更新,希望大家继续关注。

(0)

相关推荐

  • 每天一篇javascript学习小结(Function对象)

    小编两天都没有更新文章了,小伙伴们是不是等着急了,今天开始再继续我们的<每天一篇javascript学习小结>系列文章,希望大家继续关注. 1.Function  函数调用(类似call方法) function callSomeFunction(someFunction, someArgument){ return someFunction(someArgument); } function add10(num){ return num + 10; } var result1 = callSo

  • js正则表达式之input属性($_)RegExp对象属性介绍

    功能说明:该属性为RegExp的静态只读属性,该属性的值为与RegExp对象所描述的正则表达式进行匹配检测的字符串,该属性也可以表示成$_ 复制代码 代码如下: <html> <script language="javascript" type="text/javascript"> //objStr 为待匹配的内容 var objStr='abcDdefCDDE'; //创建正则表达式,i表示匹配忽略大小写 var re=/cd+e/i;//

  • javascript RegExp对象(正则表达式)

    使用RegExp的显式构造函数,语法为:new RegExp("pattern"[,"flags"]). 使用RegExp的隐式构造函数,采用纯文本格式:/pattern/[flags]. pattern部分为要使用的正则表达式模式文本,是必须的.在第一种方式中,pattern部分以JavaScript字符串的形式存在,需要使用双引号或单引号括起来:在第二种方式中,pattern部分嵌套在两个"/"之间,不能使用引号. flags部分设置正则表达

  • js正则表达式之RegExp对象之compile方法 编译正则表达式

    功能说明:该方法可以编译指定的正则表达式,编译之后的正则表达式执行速度将会提高,如果正则表达式多次被调用,那么调用compile方法可以有效的提高代码的执行速度,如果该正则表达式只能被使用一次,则不会有明显的效果. 基本语法:objReg.compile(pattern[,flag]) objReg必选项,RegExp对象变量的名称 pattern 必选项 正则表达式 flag 可选项 匹配选项 复制代码 代码如下: <html> <script language="javas

  • JavaScript-RegExp对象只能使用一次问题解决方法

    以下的代码,是测试从字符串中识别出年月日,可以看到创建的rYMD这个RegExp对象执行了一次后,又执行了一次. var DateStr = "2014-9-8"; var rYMD = new RegExp("(\\d{4}|\\d{2})-(\\d{2}|\\d{1})-(\\d{2}|\\d{1})", "g"); var aRt = rYMD.exec(DateStr); var sRt=rYMD.exec(DateStr); 经过调试,

  • js正则表达式讲解之index属性(RegExp对象)

    功能:index与search返回的值相同,不管是是否匹配到合适内容,如果找到合适内容则index为匹配内容其实字符的起始位置,如果没有找到则返回-1 基本语法RegExp.index 注意:该属性也是RegExp的静态属性,调用方式固定. 复制代码 代码如下: <html> <script language="javascript" type="text/javascript"> //alert('Designed By Androidyu

  • 每天一篇javascript学习小结(Array数组)

    1.数组常用方法 var colors = ["red", "blue", "green"]; //creates an array with three strings alert(colors.toString()); //red,blue,green alert(colors.valueOf()); //red,blue,green alert(colors); //red,blue,green 2.数组map()方法 var number

  • 每天一篇javascript学习小结(Boolean对象)

    创建 Boolean 对象的语法:     new Boolean(value);    //构造函数     Boolean(value);        //转换函数     参数 value 由布尔对象存放的值或者要转换成布尔值的值. 返回值     当作为一个构造函数(带有运算符 new)调用时,Boolean() 将把它的参数转换成一个布尔值,并且返回一个包含该值的 Boolean 对象.     如果作为一个函数(不带有运算符 new)调用时,Boolean() 只将把它的参数转换成

  • JavaScript 核心参考教程 RegExp对象

    正则表达式的直接量字符字符 匹配字母数字字符 本身\o NUL字符(\u0000)\t 制位表(\u0009)\n 换行符(\u000A)\v 垂直制位表(\u000B)\f 换页符(\u000C)\r 回车(\u000D)\xnn 由十六进制数nn指定的拉丁字符,例如\u0A等价于\n\uxxxx 由十六进制数xxxx指定的Unicode字符,例如\u0009等价于\t\cX 控制字符X,例如,\cJ等价于\n 正则表达式的字符类字符 匹配[...] 位于括号内的任意字符[^...] 不在括号

  • JavaScript学习小结(一)——JavaScript入门基础

    一.JavaScript语言特点 1.1.JavaScript是基于对象和事件驱动的(动态的) 它可以直接对用户或客户输入做出响应,无须经过Web服务程序.它对用户的响应,是采用以事件驱动的方式进行的.所谓事件驱动,就是指在主页中执行了某种操作所产生的动作,就称为"事件".比如按下鼠标,移动窗口,选择菜单等都可以视为事件.当事件发生后,可能会引起相应的事件响应. 1.2.JavaScript是跨平台的 JavaScript是依赖于浏览器本身的,与操作系统无关. 二.JavaScript

  • 每天一篇javascript学习小结(Date对象)

    1.Date.now() //Date.now() is in ECMAScript 5 //Prior to that, use +new Date() //获取当前时间 var now = (typeof Date.now == "function" ? Date.now() : +new Date()); alert("Right now: " + now); 2.Date.parse()方法 var now = new Date(); alert(now);

  • js正则表达式之RegExp对象属性lastIndex,lastMatch,lastParen,lastContext,rightContext属性讲解

    1.lastIndex属性,返回匹配内容的最后一个索引位置,也就是下一个匹配的开始位置,注意字符串索引从0开始 代码: //设置要匹配的内容 var objStr="abfdabcd"; //设置匹配的正则表达式 var re=/abc/; //输出匹配前的字符串 document.write("未匹配前的字符串"+objStr+""); //输出匹配的内容 document.write("匹配的内容"+objStr.matc

  • 每天一篇javascript学习小结(基础知识)

    1.字符转换 var s1 = "01"; var s2 = "1.1"; var s3 = "z";//字母'z'无法转换为数字,所以或返回NaN var b = false; var f = 1.1; var o = { valueOf: function() { return -1; } }; s1 = -s1; //value becomes numeric -1 s2 = -s2; //value becomes numeric -1.

随机推荐