当前位置: 代码网 > it编程>编程语言>Javascript > js正则表达式常用方法梳理(附代码案例)

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

2024年06月11日 Javascript 我要评论
1、常用的方法regexp:定义正则字面量。常用定义new regexp(),或者//定义。test:执行正则表达式的字面量方法进行匹配。匹配失败返回false,匹配成功返回true。exec:获取正

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正则表达式常用方法内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com