RegExp对象的三种方法:
1.test() 方法检索字符串中的指定值。返回值是 true 或 false。
2.exec() 方法检索字符串中的指定值。返回值是被找到的值。如果没有发现匹配,则返回 null。
3.compile() 方法用于改变 RegExp。
compile() 既可以改变检索模式,也可以添加或删除第二个参数。
test()方法举例,代码如下:
var patt1=new RegExp("e");
console.log(patt1.test("free"));
因为正则表达是匹配的是e,在free中包含e字母。故将在控制台输出true。
exec()方法举例,代码如下:
var patt1=new RegExp("e");
console.log(patt1.exec("free"));
这里止输出一个匹配到的第一个e。
compile()方法举例,代码如下:
var patt1=new RegExp("e");
console.log(patt1.exec("free"));
patt1.compile("d");
console.log(patt1.exec("free"));
第一次返回e,第二次因为更改匹配字符为d,没有匹配到故返回null。
例子:
讲一段文字中的11位电话号码的中段四位改为*,代码如下:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>正则</title>
</head>
<body>
<script type="text/javascript">
/*
* test() 方法检索字符串中的指定值。返回值是 true 或 false。
* exec() 方法检索字符串中的指定值。返回值是被找到的值。如果没有发现匹配,则返回 null。
* compile() 方法用于改变 RegExp。
* compile() 既可以改变检索模式,也可以添加或删除第二个参数。
*/
var str='jaichenglong13125982857';
var reg = /(\d{3})(\d{4})(\d{4})/g;
str = str.replace(reg,"$1****$3");
/*
*$1可以取出正则匹配字符串部分第一个字串理的字符,
*在正则表达式中用括号括起来的第一个为正则的第一个子串,下一个括号为第二个子串,以此类推。
*
*/
console.log(str);
</scripd
<body></html>