js截取图片地址后面的参数和在路径中截取文件名或后缀名

在这里插入图片描述

文章目录

  • 前言
  • 截取地址 ?后面的参数
  • 在路径中截取文件名或后缀名
  • 总结


前言

在处理网页上的图片资源或者其他类型的文件资源时,你可能会遇到需要使用这些技巧的情况。以下是一些具体的使用场景:
动态修改图片参数:如果你有一个图片URL,并且想要动态地改变它的查询参数(比如改变图片的尺寸、质量等),你可以使用URLSearchParams来修改URL,并重新加载图片。
文件上传和下载处理:在处理文件上传或下载时,你可能需要获取文件名或文件扩展名来决定如何处理文件。例如,你可能需要根据文件类型来设置不同的处理逻辑或保存路径。
URL重定向:在处理URL重定向时,你可能需要解析URL中的查询参数来决定重定向的目标地址。
构建动态URL:在构建动态网页内容时,你可能需要根据用户的输入或其他条件来生成不同的URL。这时,你可以使用这些技巧来构建包含正确查询参数或路径的URL。
URL解析和日志记录:在分析和记录用户行为或服务器请求时,你可能需要解析URL以获取有用的信息,如查询参数、路径等。
API请求处理:当你发送HTTP请求到某个API时,可能需要添加或修改查询参数。例如,你可能需要传递一些认证信息、分页参数或其他配置选项。
在处理与URL和文件路径相关的任务时,这些技巧都是非常有用的。它们能够帮助你更加灵活地操作URL和文件资源,提升网页或应用的交互性和功能性。

截取地址 ?后面的参数

可以使用JavaScript中的字符串处理函数来截取图片地址后面的参数。

// 原始图片地址
var imageUrl = "https://example.com/image.jpg?param1=value1&param2=value2";
 
// 获取图片地址后面的参数部分(包括"?")
var paramsPart = imageUrl.substring(imageUrl.indexOf("?") + 1);
console.log(paramsPart); // 输出结果为 "param1=value1&param2=value2"
 
// 如果只需要获取特定参数的值,可以进行更详细的处理
function getParamValue(url, paramName) {
    var queryString = url.split('?')[1];
    if (queryString === undefined || !queryString.includes(paramName)) return null;
    
    var pairs = queryString.split('&');
    for (var i = 0; i < pairs.length; i++) {
        var pair = pairs[i].split('=');
        if (pair[0] == paramName) {
            return decodeURIComponent(pair[1]);
        }
    }
}
 
// 调用getParamValue函数获取指定参数的值
var value1 = getParamValue(imageUrl, 'param1');
console.log(value1); // 输出结果为 "value1"
 
var value2 = getParamValue(imageUrl, 'param2');
console.log(value2); // 输出结果为 "value2"

在路径中截取文件名或后缀名

const name = "http://localhost:8000/img/图片.jpg"
 
// '/'所在的最后位置
last = name.lastIndexOf('/') 
// 截取文件名称和后缀
str = name.substring(last+1)                          // 输出:图片.jpg
// 截取路径字符串
url = name.substring(0,last)                          // 输出:http://localhost:8000/img
// 截取文件名
document= str.substring(0, str.lastIndexOf("."))      // 输出:图片
// 截取后缀
suffix= name.substring(name.lastIndexOf("."))         // 输出:.jpg
// 截取后缀名
suffixName = name.substring(name.lastIndexOf(".")+1)  // 输出:jpg

总结

通过使用 JavaScript 的内置方法和接口,我们可以轻松地截取图片地址后面的参数,以及从路径中提取文件名或文件后缀名。这些技巧在处理 URL 和文件路径时非常有用。
在JavaScript中,处理URL和提取相关信息是一项常见任务。我们可以使用URLSearchParams接口轻松截取图片地址后面的查询参数,通过split()和pop()方法从路径中提取文件名,以及使用split()和slice()组合来截取文件后缀名。这些技巧使我们能够方便地操作URL和文件路径,从而在处理图片和其他资源时更加高效和灵活。

您好,我是肥晨。
欢迎关注我获取前端学习资源,日常分享技术变革,生存法则;行业内幕,洞察先机。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/420783.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

社交APP开发能给用户带来什么

现在的社交软件也非常的多&#xff0c;每款社交软件都有自己的特色&#xff0c;社交软件是日常中必备的软件&#xff0c;不管是生活交流还是感情工作交流都是比较方便的&#xff0c;因为社交软件满足了日常的远程交流问题&#xff0c;所以开发社交软件也会逐渐的流行起来的。 …

LeetCode240题:搜索二维矩阵II(python3)

代码思路&#xff1a; “根节点” 对应的是矩阵的 “左下角” 和 “右上角” 元素&#xff0c;以 matrix 中的左下角元素为标志数 flag &#xff0c;则有: 若 flag > target &#xff0c;则 target 一定在 flag 所在行的上方 &#xff0c;即 flag 所在行可被消去&#xff0c…

NLP - 神经网络与反向传播

使用神经网络进行命名实体识别&#xff08;二值词窗分类&#xff09; 根据上下文窗口 建立词向量 通过一个神经网络层&#xff0c;通过一个逻辑分类器&#xff0c;得到这个概率是属于特定实体词的预测概率。 另一个分类器来比较说明 这个词是哪个实体类型&#xff08;比较概率…

基于Python3的数据结构与算法 - 07 归并排序

一、归并 引入 假设现在的列表分两段有序&#xff0c;如何将其合并成为一个有序列表。 这种操作成为一次归并。 归并的思路 分别对两个列表进行遍历&#xff0c;比较两个列表中的最小值&#xff0c;将更小的取出来。取出后一次进行上操作&#xff0c;直到其中一个列表中的元…

Servlet 新手村引入-编写一个简单的servlet项目

Servlet 新手村引入-编写一个简单的servlet项目 文章目录 Servlet 新手村引入-编写一个简单的servlet项目一、编写一个 Hello world 项目1.创建项目2.引入依赖3.手动创建一些必要的目录/文件4.编写代码5.打包程序6.部署7.验证程序 二、更方便的处理方案&#xff08;插件引入&am…

vue3编写H5适配横竖屏

具体思路如下&#xff1a; 1、监听浏览器屏幕变化&#xff0c;通过监听屏幕宽高&#xff0c;辨别出是横屏&#xff0c;还是竖屏状态 在项目的起始根页面进行监听&#xff0c;我就是在App.vue文件下进行监听 代码如下&#xff1a; <template><RouterView /> <…

Redis 存储原理和数据模型

redis 是不是单线程 redis 单线程指的是命令处理在一个单线程中。主线程 redis-server&#xff1a;命令处理、网络事件的监听。 辅助线程 bio_close_file&#xff1a;异步关闭大文件。bio_aof_fsync&#xff1a;异步 aof 刷盘。bio_lazy_free&#xff1a;异步清理大块内存。io_…

【前端素材】推荐优质在线高端家具电商网页Classi平台模板(附源码)

一、需求分析 1、系统定义 在线高端家具商城是一个专门销售高端家具产品的电子商务平台&#xff0c;旨在为消费者提供购买高品质家具的便捷渠道。 2、功能需求 在线高端家具商城是一个专门销售高端家具产品的电子商务平台&#xff0c;旨在为消费者提供购买高品质家具的便捷…

springboot-基础-thymeleaf配置+YAML语法

备份笔记。所有代码都是2019年测试通过的&#xff0c;如有问题请自行搜索解决&#xff01; 目录 配置thymeleafthymeleaf举例参数设置yaml基础知识YAML语法报错&#xff1a;Expecting a Mapping node but got 其他语法 spring boot不推荐使用jsp。thymeleaf是一个XML/XHTML/HTM…

react 使用 craco库 配置 @ 路径,以及 jsconfig.json或者tsconfig.json 配置智能提示

使用 craco库 来自定义CRA配置 1、概述 Craco&#xff08;Create React App Configuration Override&#xff09;是一个用于扩展 Create React App&#xff08;CRA&#xff09;配置的工具。通过 Craco&#xff0c;你可以在不弹出 Create React App 的内部配置的情况下&#x…

Entry First Day 入职恩孚第一天

入职第一天&#xff0c;电脑还没配置好就去了工厂。 熟悉了一下设备&#xff0c;切了几个小玩意&#xff0c; hello world 一下。 了解了串行端口的Nodejs的库 https://github.com/serialport/node-serialport&#xff0c;以后要用这个东西和硬件通讯&#xff0c;安装&#…

CleanMyMac X2024免费Mac电脑清理和优化工具

CleanMyMac X是一款专业的 Mac 清理和优化工具&#xff0c;它具备一系列强大的功能&#xff0c;可以帮助用户轻松管理和维护他们的 Mac 电脑。以下是一些关于 CleanMyMac X 的主要功能和特点&#xff1a; 智能清理&#xff1a;CleanMyMac X 能够智能识别并清理 Mac 上的无用文件…

mybatis原理图,我拿到了梦寐以求的字节跳动和腾讯双offer

Kafka 如何做到支持百万级 TPS &#xff1f; 先用一张思维导图直接告诉你答案&#xff1a; 顺序读写磁盘 生产者写入数据和消费者读取数据都是顺序读写的&#xff0c;先来一张图直观感受一下顺序读写和随机读写的速度&#xff1a; 从图中可以看出传统硬盘或者SSD的顺序读写甚…

map和set例题应用

个人主页&#xff1a;Lei宝啊 愿所有美好如期而遇 目录 第一题 第二题 第三题 第一题 随机链表的复制https://leetcode.cn/problems/copy-list-with-random-pointer/description/ 思路 首先遍历旧链表&#xff0c;并创建新节点&#xff0c;同时用map将旧节点与新节点…

3,设备无关位图显示

建立了一个类Dib Dib.h #pragma once #include “afx.h” class CDib :public CObject { public: CDib(); ~CDib(); char* GetFileName(); BOOL IsValid(); DWORD GetSize(); UINT GetWidth(); UINT GetHeight(); UINT GetNumberOfColors(); RGBQUAD* GetRGB(); BYTE* GetDat…

MySQL:使用聚合函数查询

提醒&#xff1a; 设定下面的语句是在数据库名为 db_book里执行的。 创建t_grade表 USE db_book; CREATE TABLE t_grade(id INT,stuName VARCHAR(20),course VARCHAR(40),score INT );为t_grade表里添加多条数据 INSERT INTO t_grade(id,stuName,course,score)VALUES(1,测试0…

一线互联网大厂中高级Android面试真题收录,记一次字节跳动Android社招面试

在开始回答前&#xff0c;先简单概括性地说说Linux现有的所有进程间IPC方式&#xff1a; 1. **管道&#xff1a;**在创建时分配一个page大小的内存&#xff0c;缓存区大小比较有限&#xff1b; 2. 消息队列&#xff1a;信息复制两次&#xff0c;额外的CPU消耗&#xff1b;不合…

今年Android面试必问的这些技术面,2024Android常见面试题

都说程序员是在吃青春饭&#xff0c;这一点的确有一点对的成分&#xff0c;以前我不这么认为&#xff0c;但随着年龄的增长&#xff0c;事实告诉我的确是这样的&#xff0c;过了30以后&#xff0c;就会发现身体各方面指标下降&#xff0c;体力和身心上都多少有点跟不上了&#…

请查收:2024年腾讯云服务器优惠价格表_租用配置报价

一张表看懂腾讯云服务器租用优惠价格表&#xff0c;一目了然&#xff0c;腾讯云服务器分为轻量应用服务器和云服务器CVM&#xff0c;CPU内存配置从2核2G、2核4G、4核8G、8核16G、4核16G、8核32G、16核32G、16核64等配置可选&#xff0c;公网带宽1M、3M、5M、12M、18M、22M、28M…

RTSP协议

1 简介 RTSP 英文全称 Real Time Streaming Protocol&#xff0c;RFC2326&#xff0c;实时流传输协议&#xff0c;是TCP/IP协议体系中的一个应用层协议&#xff01;协议主要规定定了一对多应用程序如何有效地通过IP网络传送多媒体数据。RTSP体系结位于RTP和RTCP之上&#xff08…