用javascript解析字符串

用javascript解析字符串,javascript,regex,Javascript,Regex,我在表格上有一个元素: <img src="/media/BodyPart_7d0cf57e-a461-44fd-903f-ce77b005e299/300/0" class="media-item"> 我想提取Bodypart\uuuxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx 这里是字符串的掩码“/{anyt ext Here}/BodyPart_uxxxxxx-xxxx-xxxx-xxxxxxxxxxxxxx/{any number Here}/{a

我在表格上有一个元素:

<img src="/media/BodyPart_7d0cf57e-a461-44fd-903f-ce77b005e299/300/0" class="media-item">

我想提取
Bodypart\uuuxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx

这里是字符串的掩码
“/{anyt ext Here}/BodyPart_uxxxxxx-xxxx-xxxx-xxxxxxxxxxxxxx/{any number Here}/{any number Here}”

最好的一天是哪一天

诸如此类:

var output=document.querySelector(“输出”);
var img=document.querySelector(“.media项”)//假设只有这个类想要的img
var extracted_string=img.src.match(/BodyPart[^\/]*/);
如果(提取的字符串)
output.innerHTML=提取的字符串;
其他的
output.innerHTML=“未找到匹配项”;

尝试以下代码:

var input   = "<img src=\"/media/BodyPart_7d0cf57e-a461-44fd-903f-ce77b005e299/300/0\" class=\"media-item\">";
var matches = input.match(/^<img src=.*\/(BodyPart\_\w{8}\-\w{4}\-\w{4}\-\w{4}\-\w{12})\//);

alert(matches[1]);
尝试使用
.split()
.filter()

var img=document.querySelectorAll(“img[src*=BodyPart]”[0];
var res=img.src.split(“/”).filter(函数(src,i){
返回/车身部件/测试(src)
})[0];
控制台日志(res)

可能
字符串。匹配(/bodypart\u[^\/]+/i)
就可以了。如果未找到匹配项,则返回null,否则返回第一个匹配项的数组。此处获取错误:
img.src.match(/BodyPart[^\/]*/)
表示
img.src
未定义。我在调试器
img
上使用了outerHTML
outerHTML:“我实际上使用了jquery
$(this.prev(“img.media项”);
而不是
文档。querySelector
可能这就是uderfinedwas中
src
尝试
$(img)attr(“src”)的原因
-not availablejquery返回与选择器匹配的所有元素的数组,即使只返回一个。因此,您可以使用:
$(this.prev(“img.media item”)[0]
获取img元素,然后您将能够使用:
$(this.prev(“img.media item”)[0].src
$(this.prev)获取src属性img.media项“[0].src.match(/BodyPart[^\/]*/)
以获取请求的URL部分。
BodyPart_7d0cf57e-a461-44fd-903f-ce77b005e299