Javascript正则表达式学习

其实,正则还是要靠自己多写,这样才能记住那些复杂的规则,推荐MDN的基础篇及正美的博客,希望对你有帮助:

  1. MDN正则表达式基础
  2. 正美:正则表达式教程

正则表达式

元字符匹配

\b 比如: 匹配hello

  var reg = /\bhello\b/;
  console.log(reg.test('hello')); // true

字符转义

\.或\* 比如: 匹配以*开头的字符串

  var reg = /^\*\w*/;
  console.log(reg.test('*123&dkkfwe')); // true

字符类

\d 跟 [0-9] 表示只能为数字;
\w 跟 [0-9a-zA-Z] 表示只能为字母数字;
[?!.]表示匹配(.或?或!)

重复

+ 表示1次或多次
* 表示重复多次或零次
? 表示重复零次或一次
{n} 表示重复n次
{n, m} 表示重复n到m次
{n,} 表示重复那次或多次

分支条件

| 表示分支符,表示条件分支,分支的规则是从左至右;

分组

小括号来指定子表达式(也叫做分组),比如:

  var reg = /(\d{1,3}\.){3}/;
  reg.test('256.127.234.'); // true

反义

\W 表示匹配任意不是字母、数字、下划线、汉字的字符
\D 匹配任意非数字的字符
\S 匹配任意不是空白符的字符
\B 匹配任意不是单词开头或结束的位置
[^\x] 匹配除了x以外的任意字符

捕获性分组和非捕获性分组

并不是所有分组都能创建反向引用,有一种特别的分组称之为非捕获性分组,反之则为捕获性分组;比如:

  // 非捕获行分组
  var color = '#999999';
  var result = /#(?:\d+)/.test(color);
  console.log(RegExp.$1); // ''
  // 捕获性分组
  var color1 = '#888888';
  var result2 = /#(\d+)/.test(color1);
  console.log(RegExp.$1); // 888888

非捕获分组,只是用来匹配,并不会提取分组内容。也就是说,如果我们只想用圆括号将一些字符用数量词修饰,并不需要这个分组的内容,这就是非捕获分组。

正向前瞻与负向前瞻

这两个都是分组内的一些条件:
(?=exp) 正向前瞻,匹配exp前面的位置
(?!exp) 负向前瞻,匹配exp后面不是exp的位置

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值