如何在jQuery中移除指定单词前的所有内容及所有../前缀?
移除图片链接中的所有
../前缀 我懂你的需求啦——不管图片链接开头有多少个../,都得把它们全部清掉,只留下后面的图片文件名/相对路径,用来匹配移动应用的正确目录对吧?用正则表达式结合jQuery就能轻松搞定,代码其实挺简洁的。
具体实现方法
分两种场景给你写示例,你可以按需选用:
1. 批量处理页面里的目标图片
假设你的图片都放在mygallery或browsegallery容器里(比如它们的class是.mygallery和.browsegallery),可以这样批量处理所有图片的src属性:
// 选中两个容器里的所有img元素 $('.mygallery img, .browsegallery img').each(function() { // 获取当前图片的原始路径 const originalSrc = $(this).attr('src'); // 用正则替换掉开头所有连续的../ const cleanSrc = originalSrc.replace(/^(\.\.\/)+/, ''); // 更新图片的src属性 $(this).attr('src', cleanSrc); // 提取到的imgName就是处理后的路径,直接用就行 const imgName = cleanSrc; // 这里可以加你后续的目录匹配逻辑,比如打印验证结果 console.log('处理后的图片路径:', imgName); });
2. 单独处理单个路径字符串
如果你只是想手动处理某个路径字符串,不需要操作DOM元素,直接用正则替换就好:
const originalPath = '../../assets/photo.png'; // 任意带../前缀的路径 const imgName = originalPath.replace(/^(\.\.\/)+/, ''); // 处理后结果是 'assets/photo.png' console.log(imgName);
正则表达式说明
/^(\.\.\/)+/ 这个正则的作用拆解:
^:专门匹配字符串的开头位置,避免替换路径中间的../(\.\.\/)+:匹配一个或多个连续的../(\是转义符,因为.在正则里有特殊含义)- 替换成空字符串,就等于把开头所有的
../前缀一次性删掉了
不管你的路径是../pic.jpg、../../folder/img.png还是../../../assets/shot.jpg,这个正则都能完美适配,刚好解决你说的两个gallery里路径形式不一的问题。
内容的提问来源于stack exchange,提问作者DuliNini
相关产品推荐
相关产品推荐

