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
}
评论列表
已有0条评论