正则表达式 基本使用 let str = "shishdkahdjks器前端萨迪克进化萨发几个@dshmjfk" // 定义规则 let reg = /前端/ let reg1 = /前s端/ // 测试是否匹配 console.log(reg.test(str)); //true console.log(reg1.test(str)); // false console.log(reg.exec(str)); //数组,里面有找到的索引等 console.log(reg1.exec(str)); // null
正则表达式
基本使用
let str = "shishdkahdjks器前端萨迪克进化萨发几个@dshmjfk"
let reg = /前端/
let reg1 = /前s端/
console.log(reg.test(str));
console.log(reg1.test(str));
console.log(reg.exec(str));
console.log(reg1.exec(str));
元字符
边界符
| 边界符 |
说明 |
| ^ |
匹配行首(从谁开始) |
| $ |
匹配行尾(以谁结束) |
console.log(/^二哈/.test('二哈dsadas'))
console.log(/^二哈/.test('sda二哈dsadas'))
console.log(/二哈$/.test('sda二哈dsadas'))
console.log(/二哈$/.test('sda二哈'))
console.log(/^二哈$/.test('sda二哈'))
console.log(/^二哈$/.test('二哈'))
console.log(/^二哈$/.test('二哈二哈'))
量词
| 量词 |
说明 |
| * |
重复0次或多次 |
| + |
重复1次或多次 |
| ? |
重复0次或1次 |
|
重复n次 |
|
重复n到无数次 |
|
重复n~m次(,两侧不能有空格) |
console.log(/^哈$/.test('哈哈'))
console.log(/^哈*$/.test('哈哈'))
console.log(/^哈*$/.test(''))
console.log(/^哈*$/.test('s哈哈'))
console.log(/^哈*$/.test('哈哈s'))
console.log(/^哈*$/.test('哈dfs哈'))
console.log('------')
console.log(/^哈$/.test('哈哈'))
console.log(/^哈+$/.test('哈哈'))
console.log(/^哈+$/.test(''))
console.log('------')
console.log(/^哈$/.test('哈哈'))
console.log(/^哈?$/.test('哈哈'))
console.log(/^哈?$/.test(''))
字符类
| 字符类 |
说明 |
| [] |
中括号包裹的字符串中任意一个出现(注意:只有一个) |
| [a-z] |
小写字母的一个 |
| [A-Z] |
大写字母的一个 |
| [0-9] |
数字的一个 |
| [0-9a-zA-Z] |
可以连在一起 |
| [^0-9] |
除了数字的任意一个(注意:^需要在中括号里面,取反操作) |
| . |
除了换行符以外任意一个 |
console.log(/^[abc]$/.test('a'))
console.log(/^[abc]$/.test('ab'))
console.log(/^[abc]$/.test('b'))
console.log(/^[abc]$/.test('v'))
预定类
| 预定类 |
说明 |
| \d |
匹配数字任意一个,相当于[0-9] |
| \D |
除了数字的字符,相当于[^0-9] |
| \w |
字母,数字和下换线任意一个,相当于[a-zA-Z0-9_] |
| \W |
除了字母、数字和下换线任意一个,相当于[^a-zA-Z0-9_] |
| \s |
匹配空格(包括换行符、制表符等),相当于[\t\r\n\v\f] |
| \S |
匹配非空格的符号,相当于 [^\t\r\n\v\f] |
修饰符
语法:/表达式/修饰符
| 修饰符 |
说明 |
| i |
忽略小写(ignore) |
| g |
匹配所有的(global) |
let str1='java很难,学JAVA吗?'
console.log(str1.replace(/java/gi, '前端'));