正则表达式(基础、常用)

正则(RegExp):用于检测字符串是否符合该规则,符合返回值为true,不符合返回值为false

一、定义正则表达式

1、字面量方式

javascript 复制代码
const reg=/a/   // 字符串中含有a即可

2、构造函数方式

javascript 复制代码
const reg0=new RegExp('a')

二、元字符(特殊字符)

1、\d :匹配数字 0~9

javascript 复制代码
const reg1_1=/\d/  
const reg1_2=/[0-9]/

2、\D :匹配非数字

javascript 复制代码
const reg1_3=/\D/

3、\w :匹配 数字、字母、下划线 任意字符

javascript 复制代码
const reg2_1=/\w/

4、\W :匹配非数字、字母、下划线 的任意字符

javascript 复制代码
const reg2_2=/\W/

5、\s :匹配空白字符

javascript 复制代码
const reg3_1=/\s/

6、\S :匹配非空白字符

javascript 复制代码
const reg3_2=/\S/

匹配 数字或字母

javascript 复制代码
const reg4=/[0-9a-zA-Z]/

console.log(reg3_1.test('1sd'));  // false
console.log(reg3_1.test('asd ')); // true

console.log(reg4.test('1sd')); // true
console.log(reg4.test('1sd '));// true
console.log(reg4.test('_ '));  // false

二、边界符 ^ $

1、 ^: 以...开头

javascript 复制代码
const reg5=/^js/  // 以js开头
console.log(reg5.test('jsqwe')); // true

2、$: 以...结尾

javascript 复制代码
const reg6=/js$/ // 以js结尾
console.log(reg6.test('123js')); // true

3、精确匹配: /^...$/

javascript 复制代码
const reg7=/^js$/
console.log(reg7.test('jsjs'));  // false
console.log(reg7.test('js'));    // true

三、量词

1、* :重复出现任意次

javascript 复制代码
const reg1_1=/z*/
const reg1_2=/^z*$/

console.log(reg1_1.test('zzz'));    // true
console.log(reg1_1.test('zzzdd'));  // true
console.log(reg1_2.test('zzz'));    // true
console.log(reg1_2.test('zzzdd'));  // false

2、+:重复至少一次

javascript 复制代码
const reg2_1=/z+/
const reg2_2=/^z+$/

console.log(reg2_1.test(''));      // false
console.log(reg2_1.test('zzzd'));  // true
console.log(reg2_2.test(''));      // false
console.log(reg2_2.test('zzz'));   // true
console.log(reg2_2.test('zzzdd')); // false

3、?:重复0次或1次

javascript 复制代码
const reg3=/^(zx)?$/
        
console.log(reg3.test(''));    // true
console.log(reg3.test('zx'));  // true
console.log(reg3.test('zxzx'));// false

4、{n} :重复 n 次

javascript 复制代码
const reg4=/^(zx){2}$/
        
console.log(reg4.test('zx'));     // false        
console.log(reg4.test('zxzx'));   // true        
console.log(reg4.test('zxzxzx')); // false

5、{n,} :重复至少 n 次

javascript 复制代码
const reg5=/^(zx){2,}$/
        
console.log(reg5.test('zx'));     // false      
console.log(reg5.test('zxzx'));   // true       
console.log(reg5.test('zxzxzx')); // true

6、{n,m} :重复至少 n 次,至多 m 次

javascript 复制代码
const reg6=/^(zx){2,4}$/   
        
console.log(reg6.test('zxzx'));       // true
console.log(reg6.test('zxzxzxzx'));   // true
console.log(reg6.test('zxzxzxzxzx')); // false
        

四、范围:[ ]

javascript 复制代码
const reg1_1=/^[xyz]$/
const reg1_2=/[xyz]/
console.log(reg1_1.test('xx')); // false
console.log(reg1_1.test('x'));  // true
console.log(reg1_1.test('p'));  // false

console.log(reg1_2.test('xx')); // true
console.log(reg1_2.test('x'));  // true
console.log(reg1_2.test('p'));  //false

1、匹配 数字、字母、下划线

javascript 复制代码
const reg2=/^[0-9a-zA-Z_]$/
        
console.log(reg2.test('33')); //false     
console.log(reg2.test('3'));  //true
console.log(reg2.test('_'));  //true

2、中括号内的 ^ 表示取反

javascript 复制代码
const reg4=/^[^xyz]$/
        
console.log(reg4.test('xx')); // false        
console.log(reg4.test('x'));  // false       
console.log(reg4.test('p'));  // true

五、修饰符:g,i

javascript 复制代码
let str='今年是tmd个好日子,tmd,学好js,tmd,TMD,tMd'
// 替换敏感词
// replace
const newStr=str.replace('tmd','**')
console.log(newStr)
console.log(str);

let newStr1=str.replace(/tmd/,'**')
console.log(newStr1);

1、修饰符g:默认正则是惰性的,可以通过修饰符 g 来全部匹配

javascript 复制代码
let newStr2=str.replace(/tmd/g,'**')
console.log(newStr2);  //今年是**个好日子,**,学好js,**,TMD,tMd

2、修饰符 i :忽略大小写

javascript 复制代码
let newStr3=str.replace(/tmd/gi,'**')
console.log(newStr3);  //  今年是**个好日子,**,学好js,**,**,**
相关推荐
疯狂吧小飞牛8 小时前
正则表达式特殊字符
正则表达式
White graces8 小时前
正则表达式效验邮箱格式, 手机号格式, 密码长度
前端·spring boot·spring·正则表达式·java-ee·maven·intellij-idea
astragin8 小时前
正则表达式常用记录
正则表达式
不会玩技术的技术girl11 小时前
使用Python和正则表达式爬取网页中的URL数据
开发语言·python·正则表达式
疯狂吧小飞牛11 小时前
正则表达式–断言
正则表达式
yuanbenshidiaos11 小时前
【正则表达式】
数据库·mysql·正则表达式
奔跑吧邓邓子1 天前
【Python爬虫(12)】正则表达式:Python爬虫的进阶利刃
爬虫·python·正则表达式·进阶·高级
阿华的代码王国2 天前
【从0做项目】Java搜索引擎(6)& 正则表达式鲨疯了&优化正文解析
java·后端·搜索引擎·正则表达式·java项目·从0到1做项目
程序员小王꧔ꦿ2 天前
BeautifulSoup、lxml/XPath和正则表达式在数据爬取中的核心差异及适用场景
正则表达式·beautifulsoup
程序员小王꧔ꦿ2 天前
BeautifulSoup、lxml/XPath和正则表达式在数据爬取中的适用场景
正则表达式·beautifulsoup