正则表达式快忘完了,复习以下。

  正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。
给定一个正则表达式和另一个字符串,我们可以达到如下的目的:
  1. 给定的字符串是否符合正则表达式的过滤逻辑(称作“匹配”);
  2. 可以通过正则表达式,从字符串中获取我们想要的特定部分。
  3. 替换

  正则表达式规则
  元字符
. 匹配任何单个字符,除了换行
\d 数字 \D 非数字
\w 数字 字母 下划线 \W 非
\s 空白 \S 非空白
\n 换行
\t 制表符


  范围-- 匹配的是一个字符
[0-9] [0123] [a-z] [A-Z] 匹配的是一个字符
 | 或者 \w|\d
量词 -只修饰一个字符
a+ 1个或多个a
a? 1个或0个a
a* 0个或多个a
var str = "aabbccddeeff";
var regRex = /aa*b/;
console.log(regRex.test(str));

a{x} x个n
a{x,} 至少x个a
a{x,y} x-y个a

  开始结束

^a 以a开始
a$ 以a结束
() 看成一个整体

   匹配汉字
[\u4e00-\u9fa5]
var str = "中华人民共和国";
var regRex = /[\u4e00-\u9fa5]{7}/;
console.log(regRex.test(str));

  参数
i 忽略大小写
g 全局匹配

   验证电子邮箱
^\w+@\w+\.\w+(\.\w+)?$/
   验证URL
/^\w+(s)?:\/\/(\w+\.)+\w+(\/(\w+)?(\.\w+)?)*$/
  替换replace
 所有的逗号替换成句号abc,efg,123,abc,123,a
  修改成绩,全改成100分
var jsonStr = '[{"name":"张三",score:80},{"name":"张三",score:90},{"name":"张三",score:81}]';
  把, , . 和。都改成 。
var str = "“你饿了,调我们的粮进京。你渴了.调我们的水进京。高考了,你特么想尽千方百计不让我们的孩子进京。为什么?!” 我们呼吁:全国一张卷,一个录取线!愿赌服输!最近高考方案闹得沸沸扬扬,其实大家就是要的公平竞争!同样都是孩子,同样的国家,同样的教育!为何不同的待遇?";
  去掉前后空格,封装成函数

  正则提取 match返回数组
   提取工资
var str = "张三:1000,李四:5000,王五:8000。";
   提取email地址
var str = "123123@xx.com,fangfang@valuedopinions.cn 286669312@qq.com 2、emailenglish@emailenglish.englishtown.com 286669312@qq.com...";


  分组提取
提取email中的每一部分
var str = "123123@xx.com";
var reg = /(\w+)@(\w+)\.(\w+)(\.\w+)?/;

var array = str.match(reg);
//获取分组的数据 ()是分组
console.log(RegExp.$1);
console.log(RegExp.$2);
console.log(RegExp.$3);
分组练习
var str = "5=a, 6=b, 7=c";
str = str.replace(/(\d)=(\w)/g, "$2====$1");
console.log(str);
  exec
exec 只匹配第一项,可以使用分组匹配 加/g 无效
如果要匹配多项 使用str.match() 结合正则的全局模式 /g


   正则相关的方法
正则对象的 test exec
字符串的 replace search match split


  贪婪模式 非贪婪模式

<.+> 默认是贪婪模式
<.+?> 非贪婪模式

posted on 2016-08-05 23:37  下辈子当座桥-李飞  阅读(170)  评论(0编辑  收藏  举报