1.正则
- 检测有没有 两个 ll 连在一起的
//定义字符串
var str = 'hello feng';
// 正则:有没有 两个连在一起的 ll
//创建正则
var reg = /ll/;
//首次匹配的结果以数组的形式输出
console.log(reg.exec(str));
// 检测字符串是否满足正则表达式 符合 true 不符合false
console.log(reg.test(str));
2.正则:切割
var str = 'hello feng ooo';
//将单词截取出来
console.log(str.split(' '));
//正则:按照一个空格 或多个空格切割
// console.log(str.split(/ +/));
console.log(str.split(/\s +/));
3.正则:字符串 匹配 i 不区分大小写
var str ='hello fEng abc'
console.log(str.match('feng'));
// 正则匹配 不区分大小写
console.log(str.match(/feng/i));
4.正则:字符串搜索
var str ='hello fEng abc'
console.log(str.search('feng'));
console.log(str.search(/feng/i));
5.正则:字符串 替换
console.log(str.replace('feng','FENG'),111,str);
console.log(str.replace(/feng/i,'FENG'),111,str);
6.正则表达式:精确匹配
//匹配abc 字母
var reg = /abc/;
//abc必须挨在一起
console.log(reg.test('abcefg')); //true
console.log(reg.test('bacefg')); //false
7.正则:修饰符
var str ='hello\nfe\nng';
//将\n换成111
console.log(str.replace(/\n/,111));
//把所有的\n换成111
console.log(str.replace(/\n/g,111));
8.正则:多行匹配
var str = `
hello faker
hello faker
hello faker
hello faker
`
console.log(str.replace(/faker/g,'abc'));
9.正则:字符集
//字符集
console.log(/[abc]/.test('aqwe'));
console.log(/[abc]/.test('qwe'));
console.log(/[abc]/.test('qwbe'));
10.正则:范围集
console.log(/[0-9]/.test('6'));
console.log(/[0-9]/.test('a'));
console.log(/[a-z]/.test('a'));
console.log(/[A-Z]/.test('a'));
11.正则:十六进制
console.log(/[0-9a-f]/.test('d'));
console.log(/[0-9a-f]/.test('g '));
12.正则:负向类 ^ 不包含 ^必须写在[]才表示负向类
console.log(/[^0-9]/.test('a'));
console.log(/[^0-9]/.test('7'));
13.正则:边界符
var str = 'abchello\nhelloabc\nabchello\nhelloabc'
console.log(str);
// 将开头的abc换成feng
console.log(str.replace(/abc/,'feng'));
//将所有的abc换成feng
console.log(str.replace(/abc/g,'feng'));
//只换开头的^ + gm(多行)
console.log(str.replace(/^abc/gm,'feng'));
//结尾abc换成feng 用$
//匹配最后一行
console.log(str.replace(/abc$/,'feng'));
//匹配第一个
console.log(str.replace(/abc$/m,'feng'));
//多行匹配
console.log(str.replace(/abc$/mg,'feng'));
var str = 'hello feng'
// \b表示单词边界 \B表示非单词边界
console.log(str.replace(/\b/g,'---'));
console.log(str.replace(/\B/g,'---'));
14.正则:量词
//手机号11位数字
// 1 开头 后面都是数字
var reg= /^[0-9]{10,11}$/;
console.log(reg.test(12345678901));
console.log(reg.test(123456789012));
console.log(reg.test(1234567890123));
//匹配16位数字
var reg = /^[0-9a-f]*$/
console.log(reg.test('11f'));
console.log(reg.test('f00'));
console.log(reg.test('g11'));
15.正则 :变量字母 数字 下划线 $ 不能以数字开头
var reg = /^[a-zA-Z_$][0-9a-zA-Z]*$/;
console.log(reg.test('feng'));
console.log(reg.test('$feng'));
console.log(reg.test('1feng'));