js 正则使用笔记

简介: js 正则使用笔记

目录



场景



有时候写正则时很混乱可能是没有分清楚自己写正则的场景。


一般js使用正则,两个场景:


需要知道某一个字符串是否达到我们需要的形式。(我们关心的是字符串)

需要获取某一个字符串中匹配到的内容,或者是否匹配到内容。(我们关心的是正则内容)

解决方式:


exp.test(str)

str.match(exp)

test



记住一点,test在匹配时我们需要对一整个字符串进行匹配,所以在写正则时形式一定是有头有尾/^...$/。

例子:检测字符串是不是纯数字


错误

    //正则没有头尾,我们发现只要是字符串存在数字它就返回true,目的就变成检测是否含有数字了,成了场景2
    const exp = /\d+/;
    console.log(exp.test('aaa123'))//true
    console.log(exp.test('123'))//true

正确

    const exp = /^\d+$/;
    console.log(exp.test('aaa123'))//false    
    console.log(exp.test('123'))//true

match


match来判断是否存在我们要的内容。

例子1:检测字符串中有没有数字、获取字符串中的数字。


代码1

    const exp = /\d+/;
    console.log(Boolean('123aa56'.match(exp)), '123aa56'.match(exp))

结果:我们发现我们检测是对了,但是没有匹配到56


代码2

    const exp = /\d+/g;
    console.log(Boolean('123aa56'.match(exp)), '123aa56'.match(exp))

结果:加上/g就会找到所有匹配上的内容了

image.png

另外,零宽断言也在匹配中很常用,比如匹配小数点后的数字,你需要用到小数点来查,但是你不需要获取小数点/(?<=\.)(\d+)/g,浅记一下。

相关文章
|
6月前
|
JavaScript 前端开发
JavaScript随手笔记 --- 对数据进行判断最大位数是否超过八位
JavaScript随手笔记 --- 对数据进行判断最大位数是否超过八位
|
6月前
|
JavaScript 前端开发
JavaScript随手笔记 --- 用正则表达式匹配字符串是否为运算公式
JavaScript随手笔记 --- 用正则表达式匹配字符串是否为运算公式
|
1月前
|
JavaScript 前端开发 程序员
前端学习笔记——node.js
前端学习笔记——node.js
38 0
|
15天前
|
自然语言处理 JavaScript 前端开发
[JS]同事看了我做的this笔记,直摇头,坦言:我还是参考启发博文吧
本文介绍了JavaScript中`this`关键字的重要性和使用规则。作者回顾了早期笔记,总结了`this`指向的各种情况,并分享了最新的理解。文章强调了`this`在不同上下文中的指向,包括对象方法、全局函数、箭头函数等,并提供了改变`this`指向的方法。适合JavaScript开发者参考。
31 2
|
2月前
|
JavaScript 前端开发 Java
JavaScript笔记(回顾一,基础知识篇)
JavaScript基础知识点回顾,包括语言定义、ECMAScript规范、字面量、变量声明、操作符、关键字、注释、流程控制语句、数据类型、类型转换和引用数据类型等。
JavaScript笔记(回顾一,基础知识篇)
|
3月前
|
存储 缓存 自然语言处理
深入理解JS | 青训营笔记
深入理解JS | 青训营笔记
39 0
|
5月前
|
JavaScript vr&ar 数据库
技术笔记:Js获取当前日期时间及其它操作
技术笔记:Js获取当前日期时间及其它操作
132 1
|
5月前
|
Web App开发 JavaScript iOS开发
技术笔记:js数组定义和方法(包含ES5新增数组方法)
技术笔记:js数组定义和方法(包含ES5新增数组方法)
|
5月前
|
JavaScript 程序员 索引
老程序员分享:JS基础知识(正则)
老程序员分享:JS基础知识(正则)
26 0
|
5月前
|
JavaScript BI
技术笔记:JS获取子节点、父节点和兄弟节点的方法实例总结
技术笔记:JS获取子节点、父节点和兄弟节点的方法实例总结
76 0