整理一些正则和replace的使用

replace

1.用replace去掉html标签以及空格

str.replace(/<img[^>]*>|<\/?.+?\/?>| |\s/gi, ‘’)

2.replace的替换文本函数使用

replace(regexp/substr, replacement), replce有两个参数,regexp/substr必需。规定子字符串或要替换的模式的 RegExp 对象。

请注意,如果该值是一个字符串,则将它作为要检索的直接量文本模式,而不是首先被转换为 RegExp 对象;replacement 必需。一个字符串值。规定了替换文本或生成替换文本的函数。

在项目中会很少用到替换文本的函数,没想到用起来还真的挺强大的,比如在给上传的图片添加缩略的时候,图片地址url_200x300.png这样的格式
我们可能需要将图片的后置去掉,然后拼接上图片缩略图的参数,然后在拼上图片的后缀,无疑需要indexOf一下,substring一下等等,用replace的替换文本函数就很容易了

1
2
3
4
let regx = /\.(JPG|JPEG|PNG|BMP)$/gi
let content = url.replace(regx, (m)=>{
return '_200x300' + m
})

效果如图:
1.replace

3取出富文本框中的全部图片

在富文本中无论是上传的图片还是复制粘贴过来,其实无非就是img标签,利用正则将图片全部取出,利用正则匹配图片的img标签

1
2
let reg = /<img[^>]*>/gi
let arr = data.match(reg)

利用match会返回一个数组

4.用正则表达式匹配身份证

1
2
let rep = /(^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$)|(^[1-9]\d{5}\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{2}$)/; 
rep.test(val)

符合将返回true否则返回false