我试图在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';
因此,我可以为我的移动应用程序获取正确的目录。
任何人都可以帮我解决所有这些问题(甚至不算数)' ../'?
最诚挚的问候!
答案 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)
$(...).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/');
再次感谢你!