Js-w3school(2024(2)

replace() 方法返回模式被替换处修改后的字符串。

replace([RegExp|String],[String|Function])

var str = “Visit Microsoft!”;

var res = str.replace(/microsoft/i, “W3School”); //Visit W3School!

其第一个参数可以是正则表达式,如果想全局替换需添加全局参数

‘abc’.replace(/[abc]/, ‘y’) // ybc

‘abc’.replace(/[abc]/g, ‘y’) // yyy 全局替换

在第二个参数中,也可以引用前面匹配的结果

‘abc’.replace(/a/, ‘$&b’) // abbc KaTeX parse error: Expected 'EOF', got '&' at position 1: &̲ 引用前面的匹配字符 ,'&b’-‘ab’

‘abc’.replace(/(a)b/, ‘$1a’) // aac &n 引用前面匹配字符的分组,‘$1a’-‘aa’

‘abc’.replace(/b/, ‘$’‘) // aac ‘ 引用匹配字符前面的字符 , ′ ` 引用匹配字符前面的字符, ' 引用匹配字符前面的字符,`’-‘a’

‘abc’.replace(/b/, “$'”) // acc ′ 引用匹配字符后面的字符 , " ' 引用匹配字符后面的字符," 引用匹配字符后面的字符,"’ "-“c”

如果第2个参数是回调函数,每匹配到一个结果就回调一次,每次回调都会传递以下参数

result: 本次匹配到的结果

$1,…$9: 正则表达式中有几个(),就会传递几个参数,$1~$9分别代表本次匹配中每个()提取的结果,最多9个

offset:记录本次匹配的开始位置

source:接受匹配的原始字符串

‘abc’.replace(/\w/g, function (match, $1, $2) {

return match + ‘-’

})

// a-b-c-

match()方法也会返回匹配的结果,匹配结果和exec类似

‘abc’.match(/abc/) // [‘abc’, index: 0, input: abc]

‘abc’.match(/abd/) // null

如果有全局参数(g),match会返回所有的结果,并且没有index和input属性

‘abcabcabc’.match(/abc/g) // [‘abc’, ‘abc’, ‘abc’]

split()方法使用正则,可以用指定符号分隔字符串,并返回数据

‘a,b.c’.split(/,|./) // [a, b, c]

3.修饰符:像 /microsoft/i,斜杠外面的i

在这里插入图片描述

g正则遇到第一个匹配的字符就会结束,加上全局修复符,可以让其匹配到结束

i正则默认是区分大小写的,i可以忽略大小写

m正则默认情况下,^和匹配行首和行尾,不理解就看例子

/jing$/ // 能够匹配 'yanhaijing,不能匹配 ‘yanhaijing\n’

/jing$/m // 能够匹配 'yanhaijing, 能够匹配 ‘yanhaijing\n’

/^jing/ // 能够匹配 ‘jing’,不能匹配 ‘\njing’

/^jing/m // 能够匹配 ‘jing’,能够匹配 ‘\njing’

4.括号表达式

在这里插入图片描述

()、[]、{} 的区别

() 的作用是提取匹配的字符串。表达式中有几个()就会得到几个相应的匹配字符串。比如 (\s+) 表示连续空格的字符串。

[]是定义匹配的字符范围。比如 [a-zA-Z0-9] 表示字符文本要匹配英文字符和数字。

{}一般用来表示匹配的长度,比如 \s{3} 表示匹配三个空格,\s[1,3]表示匹配1~3个空格。

5.元字符(Metacharacter)是拥有特殊含义的字符

在这里插入图片描述

在这里插入图片描述

. 匹配除了换行符(\n)以外的任意一个字符 = [^\n]

\w = [0-9a-zA-Z_]

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

\s = [ \t\n\v]

\S = [^ \t\n\v]

\d = [0-9]

\D = [^0-9]

^在[]外表示匹配开头的意思

^abc // 可以匹配abc,但是不能匹配aabc

$表示匹配结尾的意思

abc$ // 可以匹配abc,但是不能匹配abcc

上面提到的\b表示单词的边界

abc\b // 可以匹配 abc ,但是不能匹配 abcc

\b:如abcd@ , d与@之间就可以用\b匹配 ,回车符和单词字符之间当然也可以用\b匹配,其宽度为0

6.Quantifiers 定义量词

在这里插入图片描述

(1)正则默认和人心一样是贪婪的,也就是常说的贪婪模式,凡是表示范围的量词,都优先匹配上限而不是下限

a{1, 3} // 匹配字符串’aaa’的话,会匹配aaa而不是a

有时候这不是我们想要的结果,可以在量词后面加上?,就可以开启非贪婪模式

a{1, 3}? // 匹配字符串’aaa’的话,会匹配a而不是aaa

(2)如果你想匹配xxx前不能是yyy,或者xxx后不能是yyy,那就要用到预搜索。js只支持正向预搜索,也就是xxx后面必须是yyy,或者xxx后面不能是yyy

1(?=2) // 可以匹配12,不能匹配22

1(?!2) // 可以匹配22,不能匹配12

7.在 JavaScript 中,RegExp 对象是带有预定义属性和方法的正则表达式对象。

最后

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。

因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点!不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!

如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
img-GuaY37eR-1715540383157)]

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点!不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!

如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值