今天用到了JavaScript的RegExp,顺便把这部分内容复习了下,敲了敲demo
课题组要结题,断更了一段时间,以后会慢慢恢复正常
RegExp类型
RegExp 对象表示正则表达式,它是对字符串执行模式匹配的强大工具。有两种创建方式
- 字面量
var p = /pattern/attributes;
比如:匹配第一个“bat”或“cat”,不区分大小写var pattern = /[bc]at/i; - RegExp构造函数
var p = new RegExp(pattern,attributes);
比如:匹配第一个“bat”或“cat”,不区分大小写var pattern = new RegExp("[bc]at","i");
注意双重转义
var pattern1 = /\[bc\]at/i;
var pattern2 = new RegExp("\\[bc\\]at","i"); //由于是字符串所以要进行双重转义
RegExp实例方法
RegExp对象的主要方法是exec和test
$("test").innerHTML += "</br>-------无全局标识--------</br>";
var text = "cat, bat, sat, fat";
var patter3 = /.at/;
var matches = patter3.exec(text);
$("test").innerHTML += "mathches.index:"+matches.index + " matches[0]:" + matches[0] + " lastIndex:" +patter3.lastIndex + "</br>";
var text = "cat, bat, sat, fat";
var patter3 = /.at/;
var matches = patter3.exec(text);
$("test").innerHTML += "mathches.index:"+matches.index + " matches[0]:" + matches[0] + " lastIndex:" +patter3.lastIndex;
$("test").innerHTML += "</br>------带全局标识---------</br>";
var patter4 = /.at/g;
var matches = patter4.exec(text);
$("test").innerHTML += "mathches.index:"+matches.index + " matches[0]:" + matches[0] + " lastIndex:" +patter3.lastIndex + "</br>";
var text = "cat, bat, sat, fat";
var patter3 = /.at/;
var matches = patter4.exec(text);
$("test").innerHTML += "mathches.index:"+matches.index + " matches[0]:" + matches[0] + " lastIndex:" +patter4.lastIndex;
$("test").innerHTML += "</br>------test方法---------</br>";
var text = "000-00-0000";
var patter4 = /\d{3}-\d{2}-\d{4}/;
if(patter4.test(text)){
$("test").innerHTML += "The pattern was matched";
}else{
$("test").innerHTML += "The pattern was not matched";
}

RegExp构造函数属性
RegExp构造函数包含一些属性,这些适用于作用域中的所有正则表达式,并且基于所执行的最近一次正则表达式操作而变化。
$("test").innerHTML += "</br>------RegExp构造函数属性---------</br>";
var text = "this has been a short summer";
var patter5 = /(.)hort/g;
if(patter5.test(text)){
$("test").innerHTML += "input:" + RegExp.input + "</br>leftContext:" + RegExp.leftContext +
"</br>rightContext:" + RegExp.rightContext + "</br>lastMatch:" + RegExp.lastMatch +
"</br>lastParen:" + RegExp.lastParen + "</br>multiline:" + RegExp.multiline; //不支持multiline
}
$("test").innerHTML += "</br>------存储捕获组的构造函数属性---------</br>";
var patter6 = /(..)or(.)/g;
if(patter6.test(text)){
$("test").innerHTML += "$1:" + RegExp.$1 + "</br>$2:" + RegExp.$2;
}
