正则表达式 是描述字符模式的对象
//创建正则表达式对象
//1.构造函数
var pattern = new RegExp('hello','ig');
console.log(pattern);
//2.字面量
var pattern = /hello/ig;
console.log(pattern);
//正则表达式对象的属性
//判断是否全局查找
console.log(pattern.global); //true
//判断是否忽略大小写
console.log(pattern.ignoreCase); //true
//判断是否多行查找
console.log(pattern.multiline); //false
//正则表达式文本
console.log(pattern.source); //hello
//下一次检索的位置 有g修饰,会维护lastIndex,没有g修饰,lastIndex永远都是0
console.log(pattern.lastIndex);
//进行字符串的匹配
var str = 'HELLOworld helloworld hello';
//找hello字符串,如果有返回true,如果没有返回false
var pattern = /hello/ig;
//进行模式匹配
console.log(pattern.lastIndex); //0
var result = pattern.test(str);
console.log(result); //true
console.log(pattern.lastIndex); //5
//exec 如果找到返回的包含该字符串的数组,如果没有找到,返回null
var result = pattern.exec(str);
console.log(result); //['hello']
console.log(result.length); //1
console.log(result.index); //11查找到的字符串开始的位置
console.log(result.input); //str字符串
var str = 'helloocjcsbcscsgokoadqudddyy';
// var pattern = /helloo/ig;
var pattern = /(hello)/i;//分组
// console.log(pattern.test(str));
// console.log(pattern.lastIndex);
// console.log(pattern.exec(str));
//将匹配到的所有字符串拿出来,放到一个数组中['','','']exec['']
// var arr = [];
// while(result = pattern.exec(str)){
// // console.log(result);
// arr = arr.concat(result);
// } //arr.push(result[0])
// console.log(arr);
//Sting提供的正则表达式方法返回所有符合条件的元素组成的数组
//找到返回数组 没找到返回-1
var result = str.match(pattern);
//匹配到返回索引 没有返回-1
console.log(str.search(pattern));
var str = 'hello hello hello hello ggcguys';
result = str.replace(/hello/ig,'java');
console.log(str);
console.log(result);
var str = '12&34&56';
console.log(str.split('&'));
console.log(str.split(/&/));
console.log(str.split(''));
var str = 'hello world scbcscbhs';
//贪婪模式和非贪婪模式 默认贪婪模式
var pattern = /\w{3,8}/i;//贪婪模式
var pattern = /\w{3,8}?/i;//非贪婪模式
console.log(pattern.exec(str));//hello
// \d? 0-->1次
// \d+? \d{2,5}?
//验证电话号码
var str = '15242514252' ;
var pattern = /^\d{11}$/