### 正则表达式:按照某种规则去匹配符合条件的字符串;正则表达式就是这个规则,而使用正则表达式的目的是为了去匹配符合条件的字符串
- d:表示digit,数字
- +:表示匹配一次或多次
- ?:表示匹配0次到1次
- *:表示任意一个(即有,或没有,或一个)
- . : 表示任意字符
- ( )代表分组,表示获取到()里面的所有东西;
例子:比如我们要匹配一个http:开头,.jpg结尾:
~~~
http:\/\/.+\.jpg
~~~
解析:
- 这里的http:还是表示http:然后后面的\\,因为/是元字符,所以要使用\转换以下,所以就变成http:\/\/,
- 然后后面的.代表匹配任意字符串,
- +号表示匹配一次或多次,
- 后面的.jpg是结尾,由于.是元字符,所以要使用\进行转义
- 最后就变成http:\/\/.+\.jpg;
然后在http://baidu.jpg 这个文本就会被正则所匹配
![](https://box.kancloud.cn/e10cc0ae13bac6ee510414da76ab53fc_620x334.png)
然后我们要进行替换,替换成http之后,到.jpg里面的东西,以上面的为例子就是把http://baidu.jpg替换成 //baidu.jpg;
这时候我们就要把http:之后的内容进行分组,如下
~~~
http:(\/\/.+\.jpg)
~~~
然后使用$1,就可以获取到()里面的内容了
$1代表的是第一个分组,也就是第一个括号里的东西,一次类推$2就是第二个分组,就是第二个()里的东西,所以原文本:
http://baidu.jpg,就会被替换程//baidu.jpg
就可以获取到所有在http\\ 之后到jpg结尾的内容了:
![](https://box.kancloud.cn/1dffda09ec92e1e5de8988ed0844d270_620x550.png)
* * * * *
## js定义一个正则表达式
~~~
var reg = /\bis\b/g;
~~~
js中replace的方法:
replace接受两个参数.replace('reg','replacement')
第一个参数,规定子字符串或要替换的模式的 RegExp 对象。
第二个参数,一个字符串值。规定了替换文本或生成替换文本的函数。
就是说第一个参数是用来找出文本中匹配reg的内容,第二个参数是把替换内容,
然我们把匹配的内容改变为替换的内容
例子,我们还是跟上面一样,把http://www.baidu.com 替换成www.baidu.com
~~~
var reg = /http:\/\/(.+)/g;
'he is a boy. This is a dog'.replace(reg,"IS")
~~~
首先第一步,我们要声明一个正则表达式对象,对象写了正则匹配的规则
第二步,我们要把一个字符串进行匹配,然后进行替换,上面进行匹配的字符串是:
>he is a boy, This is a dog
然后我们把这个字符串的单词 is换成大写的Is:
replace(res,"Is")
结果:
![](https://box.kancloud.cn/b16724d4e5320594fa1a1c1010a0566c_362x83.png)
~~~
var reg=/http:\/\/(.+\.jpg)/
'http://www.baidu.jpg'.replace(reg,'$1')
~~~
![](https://box.kancloud.cn/66023325c7136517ced114728bdce5a6_339x76.png)
* * * * *
正则表达式有两种基本类型字符:
- 原义字符:代表自身原来的字符
- 元字符:代表正则表达式中有特殊含义的非字母字符
- 空白目录
- Javascript
- angularjs
- 自定义指令
- scope
- 自定义指令的封装
- 自定义指令限制只能输入数字
- 轮播图
- 写angular的顺序
- $state
- video
- Es6
- Let
- 箭头函数
- export
- promise
- 函数
- vue
- vue安装,以及项目结构
- vue的使用
- easy-vue
- vue起步
- vue基础
- vue-router
- vue-各文件的依赖关系
- vuex
- vue使用sass语法
- mpvue使用wx.parse
- vue-cli 构建vue项目
- vant的使用
- vue使用插件及常见问题
- 原生Js
- 数组
- ajax
- 执行上下文
- 正则表达式
- jqurey
- jqurey-mobile
- html5
- 工具
- svn使用总结
- webpack
- webpack的构建
- WebStorm
- 切图相关
- 苹果手机注意事项
- other
- 前端的价值
- 面试相关
- css
- 小程序如何引用外部字体
- 流的理解
- 替换元素
- content和伪元素
- padding和background 绘制图形
- css圆角,阴影,渐变
- line-height verticle-align
- 使用background绘制4个直角
- android的字体偏上的问题
- 小程序
- 小程序常见问题
- 小程序常用效果
- mpvue
- nodejs
- 前端工程化学习笔记
- mork.js学习