正则表达式(Regular Expression
)使用单个字符串来描述、匹配一系列符合某个句法规则的字符串搜索模式,是用于匹配字符串中字符组合的模式。
隐式创建
)
var str = 'I love js';
var pattern = /js/;
// test exec
console.log(pattern.test(str)); //true
console.log(pattern.exec(str)); //"js"
显式创建
)
var str = 'I love js';
var pattern = new RegExp('js');
console.log(pattern.test(str)); //true
console.log(pattern.exec(str)); //"js"
ignoreCase
)global
)multiline
)示例:
//字面量
var pattern = /js/i;
//构造函数
var pattern = new RegExp('js', 'i');
\u0000
)
\u0009
)
\u000A
)
\u000B
)
\u000C
)
\u000D
)
示例:
//字面量
var pattern = /\t/;
//构造函数(‘\’要翻倍)
var pattern = new RegExp('\\t');
示例:
//字面量
var pattern = /[^js]/;
//构造函数
var pattern = new RegExp('[^js]');
示例:
//字面量(这里举汉字的示例)
var pattern = /[\u4e00-\u9fa5]/;
//构造函数
var pattern = new RegExp('[\u4e00-\u9fa5]');
示例:
var str = 'aaab';
var pattern1 = /a+/;
console.log(pattern1.exec(str)); //"aaa"
var pattern2 = /a+?/;
console.log(pattern2.exec(str)); //"a"
var pattern3 = /a+b/;
console.log(pattern3.exec(str)); //"aaab"
var pattern4 = /a+?b/;
console.log(pattern4.exec(str)); //"aaab"
示例:
var str = 'abcd';
var pattern1 = /(ab)c/;
console.log(pattern1.exec(str)); //"abc", "ab"
var pattern2 = /(?:ab)c/;
console.log(pattern2.exec(str)); //"abc"
var pattern3 = /(ab)(c)/;
console.log(pattern3.exec(str)); //"abc", "ab", "c"
var pattern4 = /(a(b(c)))/;
console.log(pattern4.exec(str)); //"abc", "abc", "bc", "c"
var str = 'ab cd ab';
var pattern5 = /(ab) cd \1/;
console.log(pattern5.exec(str)); //"ab cd ab", "ab"
var str = 'html js js';
console.log(str.search('js')); //5
var pattern = /js/g;
console.log(str.search(pattern)); //5
var str = 'I love js js';
console.log(str.replace('js', 'html')); //I love html js
var pattern = /js/g;
console.log(str.replace(pattern, 'html')); //I love html html
var str = 'js js js';
var pattern = /(j)s/;
console.log(str.match(pattern)); //"js", "j"
var pattern = /(j)s/g;
console.log(str.match(pattern)); //"js", "js", "js"
var str = 'html,css,js';
console.log(str.split(',')); //"html", "css", "js"
var pattern = /,/g;
console.log(str.split(pattern)); //"html", "css", "js"
var str = 'js js js';
var pattern = new RegExp('\\b', 'i');
console.log(pattern.ignoreCase); //true
console.log(pattern.global); //false
console.log(pattern.multiline); //false
console.log(pattern.source); //\b
console.log(pattern.lastIndex); //0
var str = 'js js js';
var pattern = /js/;
console.log(pattern.lastIndex); //0
pattern.test(str);
console.log(pattern.lastIndex); //0
pattern.test(str);
console.log(pattern.lastIndex); //0
pattern.test(str);
console.log(pattern.lastIndex); //0
pattern.test(str);
console.log(pattern.lastIndex); //0
pattern.test(str);
console.log(pattern.lastIndex); //0
var str = 'js js js';
var pattern = /js/g;
console.log(pattern.lastIndex); //0
pattern.test(str);
console.log(pattern.lastIndex); //2
pattern.test(str);
console.log(pattern.lastIndex); //5
pattern.test(str);
console.log(pattern.lastIndex); //8
pattern.test(str);
console.log(pattern.lastIndex); //0
pattern.test(str);
console.log(pattern.lastIndex); //2
var str = 'I love js';
var pattern = /js/;
console.log(pattern.exec(str)); //"js"
var str = 'I love js';
var pattern = /js/;
console.log(pattern.test(str)); //true
// 姓名 /^[\u4e00-\u9fa5]{2,4}$/ // 身份证号 /^\d{17}[0-9x]$/ // 邮箱 /^\w+@\w+.[a-zA-Z]{2,3}(.[a-zA-Z]{2,3})?$/ // 手机号 /^\d{11}$/