前端基础笔记

【javascript】引用类型- RegExp 类型

2017-11-03  本文已影响3人  shanruopeng

ECMAScript 通过RegExp 类型来支持正则表达式。使用下面类似Perl的语法,就可以创建一个正则表达式。

var expression = / pattern / flags ;
/*
* 匹配字符串中所有"at"的实例
*/
var pattern1 = /at/g;
/*
* 匹配第一个"bat"或"cat",不区分大小写
*/
var pattern2 = /[bc]at/i;
/*
* 匹配所有以"at"结尾的3 个字符的组合,不区分大小写
*/
var pattern3 = /.at/gi;

创建正则表达式

字面量模式 等价的字符串
/[bc]at/ "\\[bc\\]at"
/.at/ "\\.at"
/name/age/ "name\\/age"
/\d.\d{1,2}/ "\\d.\\d{1,2}"
/\w\hello\123/ "\\w\\\\hello\\\\123"

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
aler t(pattern2.source); //"\[bc\]at"

RegExp实例方法

1、exec()

2、test()

3、toLocaleString()、toString()、valueOf()

RegExp构造函数属性

长属性名 短属性名 说 明
input $_ 最近一次要匹配的字符串。Opera未实现此属性
lastMatch $& 最近一次的匹配项。Opera未实现此属性
lastParen $+ 最近一次匹配的捕获组。Opera未实现此属性
leftContext $` input字符串中lastMatch之前的文本
multiline $* 布尔值,表示是否所有表达式都使用多行模式。IE和Opera未实现此属性
rightContext $' Input字符串中lastMatch之后的文本
       var text = "this has been a short summer";
       var pattern = /(.)hort/g;
       /*
       * 注意:Opera 不支持input、lastMatch、lastParen 和multiline 属性
       * Internet Explorer 不支持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
       }

模式的局限性

下面列出了ECMAScript 正则表达式不支持的特性

好好学习
上一篇 下一篇

猜你喜欢

热点阅读