js中的正则表达式

目录

引言

一、在js中定义一个正则表达式

二、正则表达式中的两个方法

三、正则表达式在js中的作用

四、正则表达式


引言

正则表达式,又称规则表达式(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本。

一、在js中定义一个正则表达式

[ ]中括号中可以写多个任意字符,代表只匹配一个字符

[abc]:代表可以匹配a,b,c三个字母中的任意一个字母

1./....../     以 / 开头,以 / 结尾,中间的内容为正则表达式

let regex=/[abc]/;

2.new RegExp 对象

let regex = new RegExp("[abc]");//此行的代码可以将一个字符串转换为正则表达式


let regex = new RegExp(/[abc]/);

 

二、正则表达式中的两个方法

test() :返回一个 boolean值,代表是否匹配。

let s = "abcde";

console.log(/[abc]/.test(s)) ;//true

exec():返回一个数组,数组中存放正则表达式匹配的元素。

console.log(/[abc]/.exec(s)) 


//["a",index:0.input:"abcde"];

//a:匹配到的字符

//index:匹配到的字符的索引

//input:匹配的字符串

三、正则表达式在js中的作用

1.正则表达式时专门用来处理字符串的

2.正则表达式可以从字符串中 查找 需要的数据

3.正则表达式可以从字符串中 获取 需要的数据

4.正则表达式可以从字符串中 替换 需要的数据

[abc]:代表可以匹配a,b,c三个字母中的任意一个字母

[0-9]:代表匹配任意一个数字

[a-z]:代表可以匹配小写字母中的任意一个

[A-Z]:代表可以匹配大写字母中的任意一个

[a-zA-Z]:代表匹配所有的字母

[^]:如果中括号中以^开头,代表 非

[^0-9]:代表匹配非数字的任意一个字符

[^a-z]:代表可以匹配非小写字母中的任意一个

[^A-Z]:代表可以匹配非大写字母中的任意一个

[^a-zA-Z]:代表匹配所有的非字母

简写:

\d=>[0-9];

\D=>[^0-9];

\w=>[0-9a-zA-Z_]     匹配字母数字和下划线中的任意一个字符串

\W:[^0-9a-zA-Z_] 

\s:匹配空白字符

\S:除了空白符外的所有字符

. 匹配除了换行符之外的所有的任意一个字符

\. 匹配一个点

let X = / /;//定义一个新的正则表达式
X{n } :匹配n个X

X{n, }:至少匹配 n个X

X{n,m}:匹配n到m个X

四、正则表达式

1.贪婪式表达式

let X = /    /;//定义一个新的正则表达式

//X*  :匹配0 到多个,等价于X{0,}

//X+:至少匹配一个,等价于X{1,}

//X? :匹配最多一个等价于X{0,1}

2.非贪婪式表达式=>在贪婪式表达式后添加一个   ?  

let X = /    /;//定义一个新的正则表达式

//X*?  :匹配0

//X+?:至少匹配一个

//X?? :匹配最多一个

3.限定符

^ : 如果出现在正则表达式的第一个位置 代表以...开头

/^[0-9]/以0-9中任意一数字开头

$ :如果出现在正则表达式的尾部 代表以...结尾

/[0-9]$/以0-9中任意一数字结尾

4.选择

|  :或

5.分组

( ... ) 小括号  组从左到右进行查询

6.引用

\num   引用num组的匹配内容,num从1开始

7.命名捕获组

(?<key>\d+)  将d+ 匹配的内容赋值给key可以通过exec().groups获取key的值

8.非捕获组匹配

regex = /famil(?:y|ies)/
			
			var s11 = "familysss" ;
				
			console.log(regex.exec(s11))	
			
			let version = "Wind1ow 98"; 
			
			// regex = /Window\s+(\w+)/ 
			
			regex = /(?<!Window)\s+(\w+)/
			
			console.log(regex.exec(version))

famil(?:y|ies)  此时的小括号不能算作分组

9.断言

?=  正向确定断言

?!   正向否定断言

?<=  反向确定断言

?<!  反向否定断言

10.判断一个字符串中是否有手机号

/1[3-9]\d{9}/

//此为包含 字符串中有符合该条件则返回true

/^1[3-9]\d{9}$/

//此为一个以 1 开头 十一位的数字字符串

 

  • 3
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JavaScript正则表达式和Java正则表达式在语法上有一些差异,但是它们的基本概念和用法是相似的。下面是将JavaScript正则表达式转换为Java正则表达式的一些常见规则: 1. 语法差异: - JavaScript正则表达式使用斜杠(/)作为定界符,而Java正则表达式使用双引号(")作为定界符。 - JavaScript正则表达式的特殊字符需要进行转义,而Java正则表达式的特殊字符不需要转义。 2. 字符类: - JavaScript正则表达式的字符类使用方括号([])表示,而Java正则表达式使用方括号([])或者Unicode转义(\p{...})表示。 - JavaScript正则表达式的字符类可以使用连字符(-)表示范围,而Java正则表达式需要使用Unicode转义(\uXXXX)表示范围。 3. 量词: - JavaScript正则表达式的量词使用花括号({})表示,而Java正则表达式使用花括号({})或者问号(?)表示。 - JavaScript正则表达式的贪婪量词默认是贪婪模式,而Java正则表达式的贪婪量词需要在后面添加问号(?)来表示非贪婪模式。 4. 边界匹配: - JavaScript正则表达式的边界匹配使用插入符号(^)和美元符号($)表示,而Java正则表达式使用\A和\Z表示。 5. 其他差异: - JavaScript正则表达式的捕获组使用圆括号(())表示,而Java正则表达式使用圆括号(())或者方括号([])表示。 - JavaScript正则表达式的反向引用使用反斜杠加数字(\1、\2等)表示,而Java正则表达式使用美元符号加数字($1、$2等)表示。 以上是一些常见的JavaScript正则表达式转换为Java正则表达式的规则。具体转换时,还需要根据具体的正则表达式进行适当的调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值