如何在jquery中的指定单词之前删除所有内容,每个字符串?

时间:2018-02-15 23:51:33

标签: javascript jquery angularjs string

我试图在jquery中做一个简单的字符串替换,但它似乎不仅仅是一个简单的代码。 在 mygallery 中有此图片链接(请注意2x ../)

var imgName= '../../appscripts/imgs/pic_library/burn.jpg';

browsegallery 中,我有类似的内容:

var imgName ='../../../../../appscripts/imgs/pic_library/burn.jpg';

有时取决于我从何处获取图像源,它可以像这样

var imgName = '../appscripts/imgs/pic_library/burn.jpg';

我想要做的是,摆脱所有这些' ../',并获得这样的imgName:

'appscripts/imgs/pic_library/burn.jpg';

因此,我可以为我的移动应用程序获取正确的目录。

任何人都可以帮我解决所有这些问题(甚至不算数)' ../'?

最诚挚的问候!

5 个答案:

答案 0 :(得分:2)

使用字符串的替换方法可以删除所有的情况     ../

var imgPath = '../../../../../appscripts/imgs/pic_library/burn.jpg';
var imgName = imgPath.replace(/\.\.\//g, '');
console.log(imgName);

答案 1 :(得分:1)

我知道OP已经发布了他/她的“回答”,但是这里直接回答了他/她的问题并没有将你与他/她的例子中的“/ appscripts”联系起来:

const imgName= '../../appscripts/imgs/pic_library/burn.jpg';
const img = imgName.split('../')
  .filter((val) => val !== '')
  .join('');

答案 2 :(得分:0)

如果所需的结束路径始终相同 - 只需获取唯一部分(实际文件名)并将其添加到所需路径的字符串中。以下是使用lastIndexOf从相对路径获取实际文件名,然后构建一个字符串以提供所需的路径加上文件名。



var fileSource = 'appscripts/imgs/pic_library/burn.jpg';
let lastIndex = fileSource.lastIndexOf('/');
let fileName = fileSource.slice(lastIndex + 1, fileSource.length); // gives burn.jpg
let imageSource  = 'appscripts/imgs/pic_library/' + fileName;

console.log(imageSource); // gives appscripts/imgs/pic_library/burn.jpg




答案 3 :(得分:0)

  • 您可以创建一个jQuery插件,即:$(...).imagify()
  • 使用正则表达式替换该模式:.replace(/(\.){1,2}\//g, '')

$.fn.imagify = function() {  
    var src = this.attr('src') || '';
    this.attr('src', src.replace(/(\.){1,2}\//g, ''));
};

$('img').imagify();

$('img').each((_, obj) => console.log($(obj).attr('src')));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<img src='../../../../../appscripts/imgs/pic_library/burn.jpg'>
<img src='../appscripts/imgs/pic_library/burn.jpg'>
<img src='./../../appscripts/imgs/pic_library/burn.jpg'>

资源

答案 4 :(得分:0)

谢谢大家的帮助。 我终于使用{ "presets": [ ["env", { "modules": "umd", "loose": true }] ] }

解决了这个问题

像这样:

imgName.split('/appscripts/');

再次感谢你!