前端 js 经典:正则表达式

1. 作用

正则表达式的作用就是匹配一个字符串

打比方,假如你要判断一个 str 是不是等于 "abc", 可以通过 str == "abc" ? true : false 来判断,匹配返回 true,不匹配返回 false,那如果,要判断是否等于"abc"其中 "abc" 无论哪一个字母是大写都判断为匹配,返回 true,那要怎么处理,不可能写成,str == "abc" || str == "Abc" || str == "aBc" || ... 这样,就很繁琐了,这就需要用到正则表达式,"abc"大小写都匹配通过正则表达式判断为:/^(a|A)(b|B)(c|C)$/, 通过正则的test()方法,就可以满足需求了 /^(a|A)(b|B)(c|C)$/.test(str)

2. 定义

// ^: 以什么开始 $: 以什么结束
/^$/;

3. 方法

// demo
let reg = /^y[a-zA-Z0-9_]*coder$/;
let str = "yqcoder";

// 正则的方法
// 满足匹配返回true,否则false
reg.test(str); // true
// 返回匹配正则的值,否则返回null
reg.exec(str); // ['yqcoder', index: 0, input: 'yqcoder', groups: undefined]

// 字符串匹配正则方法
// 替换满足正则的字符串
str.replace(reg, "super"); // 'super'
// 返回匹配的值
str.match(reg); // ['yqcoder', index: 0, input: 'yqcoder', groups: undefined]

4. 正则字符

[0-9] or \d: 单个数字

\D : 非数字

\W : 非 0-9a-zA-Z

\S : 非空白字符

. : 非换行符\n 的所有字符

[a-zA-Z0-9_] 或 \w: 包括下划线在内的字母数字

\s: 空白字符(空格 ,制表符\t,换页符\f,换行符\n,回车符\r)

5. 次数

+                 : 至少1次

?                 : 可有可无

*                  : 0-无穷次

{x}               : 指定x次

{min, }         : 至少min次

{0, max}      : 最多max次

{min, max}  : min到max次

6. 需要转义的特殊字符

* . ? + ^ $ | \ / [ ] ( ) { }

7. 操作符

\t 制表符 ('\u0009')

\n 换行符 ('\u000A')

\r 回车符 ('\u000D')

\f 换页符 ('\u000C')

\a 响铃符 ('\u0007')

\e 转义符 ('\u001B')

8. 常用正则

// 正整数:人数,排名
/^\d+$/;
// 正浮点数:金额
/^\d+(\.\d+)?$/;
// 汉字
/^[\u4e00-\u9fa5]{0,}$/;
// 英文和数字
/^[A-Za-z0-9]+$/;
// 邮箱
/^\w+([-+.]\w+)*@\w+([-.]\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}$/;
// 网址
/[a-zA-z]+://[^\s]*/
// 电话号码
/^(\(\d{3,4}-)|\d{3.4}-)?\d{7,8}$/;
// 身份证号(15位、18位数字)
/^\d{15}|\d{18}$/;
// 密码(以字母开头,长度在6~18之间,只能包含字母、数字和下划线)
/^[a-zA-Z]\w{5,17}$/;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yqcoder

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值