JS 正则提取字符串中特定的某一部分

有的时候,咱们在项目中会遇到这种需求,提取字符串中特定的某一部分,譬如咱们向后端请求数据,获得图片的URL数据,像这样"/resources/images/beauty.jpg",咱们须要提取beauty.jpg这一部分,该怎么作呢?正则表达式

今天和你们分享两个方法,一个是字符串对象的match(),还有正则对象的exec(); 这两种方法均可以实现这个功能后端

一.match(),使用正则表达式子表达式来提取目标字符串

let str = "/resources/images/beauty.jpg"
console.log(str.match(/.*\/.*\/(.*\..*/))
//结果是一个数组,第一项为整个正则表达式匹配结果,就是这个字符串,第二项就是子表达式的匹配结果
//[/resources/images/beauty.jpg,beauty.jpg]
let result = str.match(/.*\/.*\/(.*\..*/)
那么result[1]就是咱们想要的结果,beauty.jpg
😐
复制代码

不过这里要注意下,使用match()方法时,若是指定了全局模式,会忽略子表达式的提取,直接匹配整个表达式;咱们想要的那部分会拿不到数组

二.exec(),这是个正则对象的方法

let str = "/resources/images/beauty.jpg"
console.log(/.*\/.*\/(.*\..*)/.exec(str))
//exec()方法返回一个数组,第一项为整个正则表达式匹配结果,就是这个字符串,第二项就是子表达式的匹配结果,和match()返回的结果是同样的
let result = /.*\/.*\/(.*\..*)/.exec(str),仍是result[1],beauty.jpg
虽然结果同样,这两个方法其实仍是有一些差异的,具体的能够自行百度,这个点并非本文关注的点

复制代码

利用正则表达式提取特定字符串,核心点就在于子表达式的使用bash

相关文章
相关标签/搜索