我正在使用SharePoint和Office.Js添加我正在创建的。项目所有者希望图像与动态文本一起插入,但是我得到的字符串我从ajax调用返回到SharePoint只会将URL带入img标记内。这是一个字符串,我使用
进行标记 for (var x = 0; x < imageToInsert.length; x++) {
seetest = imageToInsert[x].search("<img");
if (seetest >= 0)
{
cleanedB64 = imageToInsert[x].toString().replace('~~end~~', '');
imageB64.push(cleanedB64);
}
}
var teststop = 0;
}
InsertPlainText(s
问题
处理需要从我从SharePoint接收的html img标记中获取“url”的项目。目前我有一个表达式,它只捕获&lt; img部分字符串,但我没有得到实际的URL。我使用的表达式是/img src=([^]*?)
,但我得到的是来自字符串<img src="/sites/ContentCenter/Graphics/map-al.jpg" alt="map al" style="width:611px;height:262px;" /> <br></p><p><br></p><p>
的“img src =”。
期望的结果:
我希望通过html img标记获取我从sharepoint返回的网址
答案 0 :(得分:0)
试试http://www.regexr.com。它使构建正则表达式变得非常容易。如果您只是在寻找/sites/ContentCenter/Graphics/map-al.jpg
,那么请尝试这样的事情
img src="([^"]*)
在imgsrc="(
之后,它会将所有内容分组,直到下一个收尾报价。
答案 1 :(得分:0)
首先,/img src=([^]*?)
没有给你任何东西的原因是因为你在img src=
之后发表任何言论,更多次,懒惰,没有任何东西。所以,0场比赛是最懒的,这就是答案!
其次,[^]
是&#34;而不是nothing
&#34;。只需将.
用于&#34;任何&#34;
仅供参考:所有这些公式都是指向regex101的链接
img src="(.*?)"
可能是最容易理解的:在img src="
抓住任何内容之后,懒洋洋地,直到你点击"
。但它的效率低于(找到解决方案的98个步骤)而不是
img src="([^"]*)
17个步骤。 (捕获所有内容,直到你点击"
然后停止)(这是Justin建议的,并且是最佳解决方案)
如果您希望两条最外层"
之间的所有内容都行,请回复Justin的帖子,
img src="(.*)"
将匹配/sites/ContentCenter/Graphics/map-al.jpg" alt="map al" style="width:611px;height:262px;
这会捕获所有内容,直到字符串中的最后一个"
您可能还想引用How to access capture groups in Javascript,因为这些情况下的匹配将位于捕获组1中。
答案 2 :(得分:0)
I am not sure exactly what you are trying to do, but I am assuming you are just trying to get the that value of a img src tag from a string that you are getting from SharePoint. I good way top approach this is by segmenting the string then getting that tag value. This code has not been tested but it will give you a good idea of what you want to do.
var str = selectedContent.toString();
var n = str.split("split on Img tags");
var urls = [];
for (var i = 0; i < n.length; i++) {
var post_body = selectedContent;
var div = document.createElement('div');
div.innerHTML = post_body;
var firstImage = div.getElementsByTagName('img')[i]
var imgSrc = firstImage ? firstImage.src : "";
var rawImgSrc = firstImage ? firstImage.getAttribute("src") : "";
urls.push(rawImgSrc);
}
or you can use Jquery, it can be much simpler than using a pure Javascript method this example can guide you in the right direction.
var $myString = $('.classToholdYourstring');
var test = $('img');
$(test).each(function(d)
{
console.log($(this).attr('src'));
});
答案 3 :(得分:0)
要从字符串中获取URL,请尝试以下方法:
var text = '<img src="/sites/ContentCenter/Graphics/map-al.jpg" alt="map al" style="width:611px;height:262px;" /> <br></p><p><br></p><p>'
var reg = /<img src="(.+?)"/;
var url = text.match(reg)[1];
此正则表达式查找<img src="
与下一个最接近"
之间的任何内容,以及括号内的任何内容。
匹配调用返回一个数组,其中第一个元素是匹配项,每个后续元素是您定义的任何组。然后,您可以使用数组表示法访问这些组。