js正则表达式常用方法梳理(附代码案例)

 更新时间:2024年05月15日 08:30:03   作者:资深前端之路  
正则表达式在我们日程的工作项目中,应该是一个经常用到的技能,在做一些字符的匹配和处理的过程中,发挥了很大的作用,这篇文章主要给大家介绍了关于js正则表达式常用方法的相关资料,需要的朋友可以参考下

1、常用的方法

RegExp:定义正则字面量。常用定义new RegExp(),或者//定义。

test:执行正则表达式的字面量方法进行匹配。匹配失败返回false,匹配成功返回true。

exec:获取正则匹配的片段,返回值是一个数组,第一个索引是匹配的字符串内容;如果未匹配,返回null。在执行的过程中要注意,exec方法默认只捕获第一个获取的字符串内容,如果想获取多个,需要在正则字面量中加入标识符g(全局标识符),第二次捕获的时候,就会按照顺序捕获第二个相同的内容。

在使用限定符{n,m}时,exce会默认捕获最大长度的字符串。如\d{1,3}进行匹配时,会返回最大的匹配长度。如果像获取最小的长度,可以在限定符后面加上?,如\d{1,,3}?。具体的代码,可以看代码案例

注意:正则主要是用来匹配字符串的方法,所以原字符中的内容只是值,与数字的类型没有关系。

2、元字符

  • \d:一位值为数字的字符串。
  • \D:一位非数字的字符串。
  • \s:一位空白内容字符串,主要包含:换行(\n) 、空格(\t)、 缩进。
  • \S:一位非空白内容的字符串。
  • \w:一位包含字母、数字、下划线的字符串。
  • \W:一位不包含字母、数字、下划线的字符串。
  • .:任意内容的字符串,不包含换行。

3、边界符

  • ^:开头必须是xx字符串。
  • $:结尾必须是xx字符串。

注意两者同时使用时,代表,开头必须是xx,且结尾必须是xx,是两种条件同时存在。

4、限定符

  • *:通用符,至少包含0~多次。所有字符串都通用。
  • +:代表1~多次。至少字符串要出现一次。
  • ?: 代表0~1次。字符串出现一次时,返回true;字符串不出现时,返回false.
  • {n}:代表连续出现n次。
  • {n,}:代表至少连续出现 >= n+次字符串。
  • {n,m}:代表至少连续出现>=n 且 <=m长度的字符串。

5、特殊符

  • ():将元字符作为一个整体。将多种组合方式作为整体。
  • | :代表或的含义,字面量中的规则只需要保持一个匹配条件即可。
  • []:代表一位中括号的字符。如[12345689],包含其中的一位就符合条件。如 0-9、a-z、A-Z

6、常用表达式

以下是常用的正则表达式规则,以下是自己常用的一些表达式规则,可以直接复制粘贴:

邮箱地址:^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$
网址:[a-zA-z]+://[^\s]* 或 ^http://([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?$
国内手机号:^(13[0-9]|14[5|7]|15[0|1|2|3|5|6|7|8|9]|18[0|1|2|3|5|6|7|8|9])\d{8}$
国内电话号:^(\(\d{3,4}-)|\d{3.4}-)?\d{7,8}$
身份证号(15位、18位数字):^\d{8,18}|[0-9x]{8,18}|[0-9X]{8,18}?$

7、收获总结

在回顾正则元字符的过程中,表达式的规则,首先定义包含的字符格式,然后限定字符串长度,接着确定是否有边界限制,如以xx开头,以xx结尾,最后是进行匹配执行。将按照这个顺序来理解正则,就容易很多。

8、代码案例

const initData3 = ()=>{
  let reg = /\d{1,3}/
  let reg2 = /\d{1,3}?/
  let str = "now is 1233434"
  let str2 = "now is 12"
  let a = reg.exec(str)
  let b = reg.exec(str2)
  let c = reg2.exec(str)
  let d = reg2.exec(str2)
  console.log('最大1',a)
  console.log('最大2',b)
  console.log('最小1',c)
  console.log('最小2',d)
}

附:校验密码强度

^(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,10}$
  • (?=…) 是正向肯定预查的语法,表示在当前位置向后查找匹配括号内的表达式。
  • .:匹配除换行符外的任意一个字符。
  • .* 表示匹配任意数量的字符(除换行符外)。
  • (?=.\d) 表达式的含义是:在当前位置向后查找,如果存在至少一个数字,则匹配成功。当前位置是在匹配的起始位置(^)之后。
  • (?=.[a-z]) 表示使用正向肯定预查来匹配至少一个小写字母。当前位置是在匹配的起始位置(^)之后。
  • (?=.*[A-Z]) 表示使用正向肯定预查来匹配至少一个大写字母。当前位置是在匹配的起始位置(^)之后。

包含大小写字母和数字的组合,不能使用特殊字符,长度在8-10之间。

总结 

到此这篇关于js正则表达式常用方法的文章就介绍到这了,更多相关js正则表达式常用方法内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • JS+HTML5 FileReader对象用法示例

    JS+HTML5 FileReader对象用法示例

    这篇文章主要介绍了JS+HTML5 FileReader对象用法,结合具体实例形式分析了FileReader对象的常用方法及简单使用技巧,需要的朋友可以参考下
    2017-04-04
  • Javascript点击按钮随机改变数字与其颜色

    Javascript点击按钮随机改变数字与其颜色

    这篇文章主要介绍了Javascript点击按钮随机改变数字和其字体的颜色,实现后的效果很不错,具有一定的参考价值,有需要的可以参考借鉴,下面来一起看看。
    2016-09-09
  • 可以支持多中格式的JS键盘

    可以支持多中格式的JS键盘

    可以支持多中格式的JS键盘...
    2007-05-05
  • js 获取(接收)地址栏参数值的方法

    js 获取(接收)地址栏参数值的方法

    当地址栏含有参数,我们可以再目标页面通过window.location.search来获取我们需要的参数及其值,接下来为大家介绍下详细获取方法,感兴趣的朋友可以参考下哈
    2013-04-04
  • JavaScript将Table导出到Excel实现思路及代码

    JavaScript将Table导出到Excel实现思路及代码

    将Table导出到Excel不是一件困难的事,很多语言都可以实现,本文主要介绍下使用JavaScript实现将table导出到excel,思路很清晰感兴趣的你不妨参考下哈
    2013-03-03
  • js跨域问题浅析及解决方法优缺点对比

    js跨域问题浅析及解决方法优缺点对比

    所谓js跨域问题,是指在一个域下的页面中通过js访问另一个不同域下 的数据对象,出于安全性考 虑,几乎所有浏览器都不允许这种跨域访问,这就导致在一些ajax应用中,使用跨域的web service会成为一个问题。 要解决跨域的问题,就是本文我们需要探讨的了
    2014-11-11
  • e.target与e.currentTarget对象的使用区别详解

    e.target与e.currentTarget对象的使用区别详解

    这篇文章主要为大家介绍了e.target与e.currentTarget的使用区别示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-07-07
  • 详解Javascript几种跨域方式总结

    详解Javascript几种跨域方式总结

    在实际开发中我们经常需要获取其他域的资源,本篇文章主要介绍了详解Javascript几种跨域方式总结,有兴趣的可以了解一下。
    2017-02-02
  • laydate只显示时分 不显示秒的功能实现方法

    laydate只显示时分 不显示秒的功能实现方法

    今天小编就为大家分享一篇laydate只显示时分 不显示秒的功能实现方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-09-09
  • JS常见加解密算法小结

    JS常见加解密算法小结

    在Web开发中,保护用户数据是至关重要的,而对数据进行加密是其中一种有效手段,本文将深入浅出地介绍常见的加解密算法,包括消息摘要算法、对称加密算法以及非对称加密算法,需要的朋友可以参考下
    2023-12-12

最新评论