正则表达式(regular expression):一个描述字符模式的对象
1 正则表达式的定义
RegExp()构造函数
正则表达式直接量(一对斜杠
//
)
var patern0 = //;
var patern1 = new RegExp();
JavaScript引用类型——“RegExp类型”的注意要点
2 用于模式匹配的String方法
search()
不支持全局搜索(忽略表达式参数中的修饰符g)
var str = "JavaScript notebook";
console.log(str.search(/script/i)); //4
replace()
两个参数(第一个是正则表达式,第二个是要替换的字符串)
var str = "javascript notebook";
console.log(str.replace(/javascript/g, "JavaScript")); //JavaScript notebook
var str = "javascript notebook";
console.log(str.replace(/j(ava)script/, "J$1")); //Java notebook
match()
接收一个正则表达式,返回的是一个由匹配结果组成的数组
var str = "javascript notebook";
console.log(str.match(/\S+/g).join("&")); //javascript¬ebook
var str = "http://www.example.com/ajax.html";
var a = str.match(/(\w+):\/\/([\w.]+)\/(\S*)/);
console.log(a[0]);
console.log(a[1]);
console.log(a[2]);
console.log(a[3]);
//http://www.example.com/ajax.html
//http
//www.example.com
//ajax.html
split()
将调用它的字符串拆分为一个子串组成的数组,使用的分隔符是该方法的参数:
var str = "http://www.example.com/ajax.html";
var a = str.split("/");
a.map(function (item, index, array) {
console.log(item, index);
});
//http: 0
// 1
//www.example.com 2
//ajax.html 3
方法的参数也可以是正则表达式:
var str = "http://www.example.com/ajax.html";
var a = str.split(/[\.:\/]/);
console.log(a.toString());
a.forEach(function (item) {
if (item) {
console.log(item);
}
});
//http,,,www,example,com,ajax,html
//http
//www
//example
//com
//ajax
//html
3 RegExp对象
如果待检索的字符串是由用于输入的,就必须使用构造函数,在程序运行时创建正则表达式
3.1 RegExp属性
source;
global;
ignoreCase;
multiline;
lastIndex;
3.2 RegExp方法
exec()
var str = "javascript in java or script";
var patern = /java\w*/g;
var a1 = patern.exec(str);
console.log(a1.toString());
console.log(patern.lastIndex); //lastIndex为10
var a2 = patern.exec(str);
console.log(a2.toString());
console.log(patern.lastIndex); //lastIndex为18
//javascript
//10
//java
//18
test()
var str = "javascript in java or script";
var patern = /java\w*/g;
var a = patern.test(str);
console.log(a); //True
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。