Javascript - 只获取字符串的一部分

时间:2017-05-13 09:31:08

标签: javascript

我想获取此字符串的01以便稍后编辑链接。

<img  src="/images/cool/stuff/1/01.jpg">

我可以获得与

的完整链接
var src_link = document.getElementsByTagName("img").src;

但我怎样才能在/之后和.jpg之前结束?

5 个答案:

答案 0 :(得分:0)

src_link.split('/').pop().split('.')[0]
  • 第一个分割返回斜杠之间的部分数组。

  • pop()返回该数组的最后一个元素。

  • 第二次拆分返回一个包含["O1", ".jpg"]

  • 的数组
  • [0]接受该数组的第一个元素,即你想要的东西。

编辑:小心,正如安德烈亚斯所建议的,document.getElementsByTagName('img')会返回一个特殊的arraylike对象,您需要document.getElementsByTagName('img')[0]或任何其他方式来选择您想要的对象。

答案 1 :(得分:0)

您可以使用jQuery并使用split()方法。

var data = '<img  src="/images/cool/stuff/1/01.jpg">'
var arr = data.split('/');

然后你可以使用分割的最后一部分并再次分割。

詹姆斯

答案 2 :(得分:0)

var a=document.getElementsByTagName("img");
var b=a[0].src;
var c=b.split("/");
var d= c[c.length-1].split(".");

该值将在d [0]

答案 3 :(得分:0)

您可以使用正则表达式:

.*\/(.*)\.jpg

这将匹配最后/.jpg之间的所有内容(请参阅online at regex101)。

样品使用:

&#13;
&#13;
var input = "/images/cool/stuff/1/01.jpg";
var match = input.match(/.*\/(.*)\.jpg/);
if (match) {
   document.getElementById('result').innerHTML = match[1];
}
&#13;
<div id="result"/>
&#13;
&#13;
&#13;

答案 4 :(得分:0)

注意:如果您的扩展程序是jpg且.jpg之前的字符串只有两个字符,则此解决方案将起作用。如果你想要一个通用的解决方案,那么你需要进一步调整它。

您可以使用切片字符串的简单解决方案。使用slice()方法。

  1. 请注意,您未在document之前使用getElementsByTagName
  2. 由于getElementsByTagName将为您提供类似于数组的HTMLCollection,您需要像数组一样访问它。直接访问src属性将无效。
  3. 获得src_link后,只需切片您要查找的值即可。这里的负数指数意味着你从字符串的结尾开始,而不是从开始。
  4. &#13;
    &#13;
    var src_link = document.getElementsByTagName("img")[0].src;
    var val = src_link.slice(-6, -4);
    
    console.log(val);
    &#13;
    <img  src="/images/cool/stuff/1/01.jpg">
    &#13;
    &#13;
    &#13;