var pattern = new RegExp("ain", "g");
var str = "The rain in Spain stays mainly in the plain";
console.log(pattern.ignoreCase); // 看是否具有标志 i false
console.log(pattern.global); // 看是否具有标志 g true
// 不具备标志g的pattern不能使用 lastIndex属性,该属性返回的是上次匹配到字符串
// 紧邻的下一个位置
if (pattern.global) {
console.log(pattern.test(str));
console.log(pattern.lastIndex); // 8
pattern.test(str);
console.log(pattern.lastIndex); // 17
}
console.log(pattern.source); //ain
贪婪匹配和懒惰匹配
贪婪匹配:在匹配过程中,匹配结果的长度越长越好。
懒惰匹配:与之相反
js中默认使用贪婪匹配,使用懒惰匹配需要限定符 '?'
var str = 'hello world welcome to my world';
var pattern1 = /hello.*world/; //贪婪
var pattern2 = /hello.*?world/; //懒惰
console.log(pattern1.exec(str));
console.log(pattern2.exec(str));
JavaScript RegExp对象
RegExp是正则表达式的缩写,可以根据正则匹配模式(pattern) 通过new关键字来创建. 创建语法:
attributes 可以取i(匹配时大小写不敏感), g(全剧匹配), m(多行匹配)
RegExp有三个方法,分别是:
贪婪匹配和懒惰匹配
贪婪匹配:在匹配过程中,匹配结果的长度越长越好。
懒惰匹配:与之相反
js中默认使用贪婪匹配,使用懒惰匹配需要限定符 '?'
常用正则格式
String对象中与正则有关的方法
常用的匹配模式
更多匹配模式
参考
我所认识的JavaScript正则表达式
正则图形化工具regexper