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

前端之家收集整理的这篇文章主要介绍了每天一篇javascript学习小结(RegExp对象)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

1、正则表达式test方法

if (pattern.test(text)){
alert("The pattern was matched.");
}

2、正则的toString()方法

3、RegExp Constructor(构造函数) Properties(属性

/*

  • 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个子匹配(括号中的内容

/*

  • 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

if (pattern.test(text)){
alert(RegExp.$1); //sh
alert(RegExp.$2); //t
}
每当产生一个带括号的成功匹配时,$1...$9 属性的值就被修改
可以在一个正则表达式模式中指定任意多个带括号的子匹配,但只能存储最新的九个。

5、RegExp exec()

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 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实例属性

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

原文链接:https://www.f2er.com/js/51677.html

猜你在找的JavaScript相关文章