多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
### 正则表达式:按照某种规则去匹配符合条件的字符串;正则表达式就是这个规则,而使用正则表达式的目的是为了去匹配符合条件的字符串 - 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) * * * * * 正则表达式有两种基本类型字符: - 原义字符:代表自身原来的字符 - 元字符:代表正则表达式中有特殊含义的非字母字符