RegExp方法

JavaScript 2020-05-30 1014

Regex类型

三个标志:
- g:表示全局模式,即模式被应用于所有字符串,而非在发现第一个匹配项时立即停止。
- i:表示不区分大小写模式,即在确认匹配项时忽略模式与字符串的大小写
- m:表示多行模式,即在到达一行文本末尾时还会继续查找下一行中存在与模式匹配的项

2种创建正则表达式的方式

var pattern = /[A-Z]/g;  
var pattern2 = new RegExp("[A-Z]", "g");

var pattern = /[A-Z]/g;  
var pattern2 = new RegExp("[A-Z]", "g");  
console.log(pattern.source === pattern2.source) // true  

对象包含的方法

exec(),专为捕获组设计,传入字符串,返回Array,但是包含两个额外的属性,index和input,index表示匹配项在字符串中的位置,而input表示应用正则表达式的字符串。

var text = "ni hao, wo jiao xiao ming";  
var pattern = /(ni).*?(wo)/g;  
var result = pattern.exec(text)  
console.log(result) // ["ni hao, wo", "ni", "wo"]  
console.log(result.index); // 0  
console.log(result.input); // ni hao, wo jiao xiao ming  

test(),接受一个字符串参数,在模式与参数匹配情况下返回true,否则false;

构造函数属性

长属性名 短属性 说明
input $− 最近一次要匹配的字符串
lastMatch $& 最近一次的匹配项
lastParen $+ 最近一次匹配的捕获组
leftContext $' input字符串中lastMatch之前的文本
multiline $* 表示是否所有的表达式都使用了多行模式
rightContext $’ input字符串中lastMatch之后的文本
除此外还有9个用于存储捕获组的构造函数属性,访问属性的方式:RegExp.$1,RegExp.$2,RegExp.$3...    
在使用exec()或者test()方法时,这些属性自动填充。    
var text = "this has been a short summer";  
var pattern = /(.)hort/g;  
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  
    alert(RegExp.$1); // sh  
    alert(RegExp.$2); // t  
}  

标签:JavaScript

文章评论

评论列表

已有0条评论