首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

js正则给img的src添加域名

基础概念

正则表达式(Regular Expression)是一种文本模式,包含普通字符(例如字母和数字)和特殊字符(称为"元字符")。正则表达式使用单个字符串来描述、匹配一系列符合某个句法规则的字符串。

在JavaScript中,正则表达式是通过RegExp对象表示的,它是一种强大的文本处理工具,常用于检索、替换那些符合某个模式的文本。

相关优势

  • 灵活性:正则表达式提供了灵活的方式来匹配各种复杂的文本模式。
  • 效率:相比于其他文本处理方法,正则表达式通常更加高效。
  • 广泛支持:几乎所有的现代编程语言都支持正则表达式。

类型

  • 简单匹配:如 /abc/ 匹配字符串中的 "abc"。
  • 复杂模式:如 /\d{3}-\d{2}-\d{4}/ 匹配美国社会安全号码。
  • 替换操作:使用 replace() 方法结合正则表达式进行文本替换。

应用场景

  • 表单验证:检查用户输入是否符合特定格式。
  • 数据提取:从大量文本中提取特定信息。
  • 文本清洗:替换或删除文本中的不需要的部分。

问题解决

假设我们有一段HTML代码,其中包含多个<img>标签,但没有指定src属性的域名。我们需要给这些src属性添加一个域名。

示例代码

代码语言:txt
复制
// 假设这是我们的HTML字符串
const html = `
<div>
  <img src="/images/image1.jpg" alt="Image 1">
  <img src="/images/image2.png" alt="Image 2">
</div>
`;

// 定义正则表达式,匹配没有域名的src属性
const regex = /<img src="([^"]+)" alt="[^"]*">/g;

// 使用replace()方法替换匹配到的内容
const newHtml = html.replace(regex, (match, p1) => {
  // 给src属性添加域名
  return `<img src="https://example.com${p1}" alt="${match.match(/alt="([^"]*)"/)[1]}">`;
});

console.log(newHtml);

解释

  1. 正则表达式/<img src="([^"]+)" alt="[^"]*">/g
    • /<img src=":匹配开始标签 <img src="
    • ([^"]+):捕获组,匹配并捕获 src 属性的值(即图片路径)。
    • alt="[^"]*":匹配 alt 属性及其值。
    • ">:匹配结束标签 ">
    • g:全局匹配标志,表示匹配所有符合条件的子字符串。
  • replace()方法
    • 第一个参数是正则表达式。
    • 第二个参数是一个回调函数,接收匹配到的字符串和捕获组作为参数。
    • 在回调函数中,我们构造新的<img>标签,给src属性添加域名。

参考链接

通过这种方式,我们可以高效地为多个<img>标签的src属性添加域名。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

PHP 正则表达式 获取富文本中的 img标签的src属性

前言 鄙人发现对于微信看看中的文章,一般都会有三张摘要图片; 所以想着可以直接提取富文本中的 img>标签的 src 属性信息; 这样就可以在前台的 文章列表中展示三张图片(建议不要多了),吸引阅读...环境 - 首先要知道,虽然正则表达式学习起来比较通用,但是不同的语言还是会有所差异; - 我选用的是 PHP语言,所以需要提醒下参考环境,虽然问题也不大 场景分析 起先我测试使用的正则表达式如下:...img> 标签是忽略大小写的,并且 标签结尾 使用 > 或者 /> - 2. src 属性信息一般是以".jpg|.png|.jpeg|.gif"结尾的; 但是也有的不需要扩展没那个结尾(只是个图片链接...注意匹配的结尾形式 ([^\'\"]*) 匹配不上单引号和双引号的字符 整理后的处理源码如下: /** * 对富文本信息中的数据 * 匹配出所有的 img> 标签的 src属性 * @param...参考文章 ------ 如何通过正则表达式获取img标签的src属性 ------ PHP正则表达式,看这一篇就够啦! ②. 推荐学习—— 正则表达式 - 匹配规则

6.8K10
  • js给数组添加数据的方式js 向数组对象中添加属性和属性值

    大家好,又见面了,我是你们的朋友全栈君。...参考:https://www.cnblogs.com/ayaa/p/14732349.html js给数组添加数据的方式有以下几种: 直接利用数组下标赋值来增加(数组的下标起始值是0) 例,先存在一个有...用 数组名.splice(开始插入的下标数,0,需要插入的参数1,需要插入的参数2,需要插入的参数3……)来增加数组数据 let arr=[1,2,3]; //splice(第一个必需参数:该参数是开始插入...\删除的数组元素的下标,第二个为可选参数:规定应该删除多少元素,如果未规定此参数,则删除从 第一个参数 开始到原数组结尾的所有元素,第三个参数为可选参数:要添加到数组的新元素) let result=arr.splice...(3,0,7,8,9) console.log(arr);  此时的输出结果是[ 1, 2, 3, 7, 8, 9 ]; 因为举例是从第3个下标开始,所以是直接在数组的最后开始增加数组内容; js 向数组对象中添加属性和属性值

    23.5K20

    分享超炫的表白页面和爱的纪念日源码

    ①、模版文件说明: /2014 /css /css/all.min.css /fonts /fonts/RuiHeiXiTi.otf /img /img/***.jpg /img/***.gif /js.../js/all.min.js /js/audio.min.js /js/brav1toolbox.js /js/flowtime.js /js/love.min.js /js/love.src.js...,若更改,请同时修改 love.php 里的路径 /js/love.min.js 字段获取 js 压缩文件 /js/love.src.js 是未压缩的 love.php 核心处理文件,love.min.js...传参给此文件处理并生成相应静态页面 loveNote.txt 数据记录 loveTpl.html 页面模版文件 love.php 生成的页面以此文件为模版 ②、程序运行原理: 给页面文字添加 span...,并用正则进行判断内容是否合法,然后通过 AJAX POST 给 php 处理,php 对传入的参数进行过滤,然后读取模版文件,替换模版文件对应内容,保存为新文件并记录操作,最后返回数据给前端,前端处理数据并更新页面

    6.7K80

    Js - JQ事件委托( 适用于给动态生成的脚本元素添加事件)

    最近一段时间打了一个大仗,现在总算消停点,才有时间来做个总结吧算是: 移动端遇到一个项目,是一个列表的侧滑栏,在我这里用jq写的交互事件。自测各方面都挺好的,美滋滋的给了研发。...研发也美滋滋的开始开发。 但是,好景不长。。。 研发加了ajax事件后,我的交互效果有部分受了影响! 一个小姑娘,在一群大老爷们研发堆里,对着昏暗的电脑和看不太懂的后台代码,改了半天。最后没解决。...后来就找共同点,发现有个类名控制的交互都不能实现,最后去问研发,你是不是没加上我的类名? 回:加着呢啊!我一看模拟器,确实加着呢。但是看源码,没有,因为他使用ajax后期加的。。...正规点的说:JS异步加载,JQ事件不被执行解决方法(百度的标题,hah) jquery中动态新增的元素节点无法触发事件问题(同上) 解决方法: ? ?...值得注意的是:亲测此方法无效,可能是我用的jq的版本太高了,1.9多,已经不支持这个方法了 第二个方法: ? 但是缺点是:给一个元素添加多个事件委托机制时,他就挂了。  王者方法:on ?

    4.9K50

    写文没高质量配图?教你python爬虫绕过限制一键搜索下载图虫创意图片!

    笔者也是遇到相同的情况,顺便解决其中一个案例,给大家一些技术上的参考和借鉴! 并且,我们搜图片如果去百度,会遇到两种情况:非高清或者带水印。这都是我们所忌讳的东西。...理想状态 我们的理想状态就是一个网页,我们的目标网页,把图片img src="xxxxxx">直接放到html中。我们的爬虫可以直接解析。这种情况,就像你写的博客,个人网站的图片一样,简单嵌入。...有两个主要域名ice和wel,并且后面的编号还不唯一,但是可以尝试发现相同域名不同后缀的图片地址结果相同!(例如icweiliimg9和icweiliimg/效果相同)。 ?...数据藏在js里面啊!!! 我们只能用正则进行套了! 对于这个js,我们通过js=soup.select('script') js=js[4]即可获取。 ? 对于有用数据,只能正则截取。...后续可以考虑研究登录后的大图分享给大家! 其他 創建图片路径要考虑路径是否存在!

    1.1K20

    【前端安全】JavaScript防http劫持与XSS

    DNS劫持 DNS 劫持就是通过劫持了 DNS 服务器,通过某些手段取得某域名的解析记录控制权,进而修改此域名的解析结果,导致对该域名的访问由原IP地址转入到修改后的指定IP,其结果就是对特定的网址不能访问或访问的是假网址...列出一些比较常见的注入方式: src="javascript:alert(1)" /> img src='x'...我们假定现在页面上被注入了一个 src="http://attack.com/xss.js"> 脚本,我们的目标就是拦截这个脚本的执行。 听起来很困难啊,什么意思呢。.../xss/a.js"> 是页面加载一开始就存在的静态脚本(查看页面结构),我们使用 MutationObserver 可以在脚本加载之后,执行之前这个时间段对其内容做正则匹配,发现恶意代码则...使用白名单对 src 进行匹配过滤 上面的代码中,我们判断一个js脚本是否是恶意的,用的是这一句: if (/xss/i.test(node.src)) {} 当然实际当中,注入恶意代码者不会那么傻,把名字改成

    3.3K40

    Hexo NexT 评论系统 Valine 的使用

    定时检查,每天定时检查 24 小时内漏发的邮件通知 配置 首先需要添加环境变量,点击 云引擎 -> 设置,配置自定义环境变量,变量名ADMIN_URL,变量值 Web 主机域名,即二级域名地址,添加后重启容器环境变量才会生效...再以ctrl+F快速查找(关键词:vimg),不负众望,在 Valine.min.js 中找到 替换掉 src 即可,好了,思路清晰,下面开始实现: 4.3.1 下载 Valine.min.js 引入...Valine.min.js 到本地themes/next/source/js/src/Valine.min.js 修改引入本地的 Valine 在 themes/next/layout/_partials.../js/src/Valine.min.js"> 4.3.2 增加 QQ 头像判别 注意你的 valine 的版本号,我这里是 v1.4.9 打开 Valine.min.js,ctrl+...–重命名了带英文的 qq 邮箱 拼接头像地址 加入 src 显示!

    1.7K30

    面试简书(五)

    c.懒加载 当我们打开一个页面时,浏览器就会从上往下读取页面中的img>标签src中的地址,并且开启线程来进行加载。...是由于浏览器播放组件的关闭然后再次打开造成的。 解决思路: 1.删除和添加video标签这一节点,这样做会让video标签恢复到1中的状态。...3.图片太多怎么处理 方案一:将图片服务和应用服务分离(从架构师的角度思考) 把图片服务器与应用服务器分开,图片服务器采用独立域名 ,css、js和图片就可以并发请求了 方案二:简单粗暴的压缩方案...图片懒加载,简单来说就是在页面渲染过程中,图片不会一次性全部加载,会在需要的时候加载,比如当滚动条滚动到某一个位置时触发事件加载图片,通过js将img标签的data-src属性赋值给src属性 方案四:...Swiper ('#swiper2'); //第二个轮播 7.图片的自适应 方法一: js代码,以宽度为例: var img = $(.img); img.load(function

    1.1K10

    前端网络高级篇(六)网站性能优化

    不使用CDN时: 用户在浏览器访问栏中输入要访问的域名。 浏览器向DNS服务器请求对该域名的解析。 DNS服务器返回该域名的IP地址给浏览器。 浏览器使用该IP地址向服务器请求内容。...服务器将用户请求的内容返回给浏览器。 尽量将CDN的域名设置的不同于请求方网站的域名。比如,网站为a.com,CDN域名可以设置为acdn.com。为什么呢?...Cookie隔离:Cookie 是紧跟域名的,同一个域名下的所有请求,都会携带 Cookie。试想,海量请求图片或JS/CSS文件时,还要携带Cookie,也会成为不小的开销。...第一步: 懒加载的img标签的src设置缩略图或者不设置src,然后自定义一个属性,值为真正的图片或者原图的地址(比如data-src)。...避免页面中空的href和src 当link标签中的href,或者ifram,script,img标签的src属性为空时,浏览器在渲染过程中仍然会将href和src中的空内容进行加载,直到失败为止。

    1.9K30

    web前端安全相关

    :'"字符对原有的html结构会进行破坏,从而给了攻击者拼接代码的可能 &符号必须先转义,否则其他已经被转成html实体中&符号会被重复转义 是不是使用ejs 就安全了?...看下面的这个例子 img src= /> img src=/404.png onerror=alert(1) /> html属性在没有单、双引号的情况下也是允许的,这时候属性值是包含空格的时候也有被攻击的可能...src属性也有注入的风险,可以看下面有例子 src="data:text/html;base64,PHNjcmlwdD5hbGVydCgxKTwvc2NyaXB0Pg==">js url模块的parse方法对链接进行解析后来校验,在解析过程发现一些特殊场景, 假定我们认为cloud.tencent.com是安全域名 使用@符号来构造BasicAuth协议来绕过域名校验.../导向不符合预期的相对url上去 建议在url.parse前,使用正则/^https:\/\//来校验协议是否合法 利用crlf回车换行符绕过 正常情况下我们的重定向返回包是这样 HTTP/1.1 302

    1.1K50

    Google - AMP框架分析及外贸站接入解决方案!

    而如 img 或 video 这样的标签不能直接使用,需要替换成别的标签才能使用,如在 AMP 中需要替换成amp-img,在mip中替换成mip-img。...AMP-Cache 给所有符合规范的 MIP 页面提供 CDN 缓存服务,主动提高页面的加载速度。...好处:不用单独给AMP页面设置对应的独立域名,不用添加前面提到的标签属性来强调amp站和源站的对应关系。 解决方案二: 第二种方案就是给站点的AMP站单独绑定对应的独立域名!...答案是不会的,源站和新AMP站添加上面介绍的对应关系后,谷歌搜索引擎会自动识别,过几天站长就可以在谷歌站长平台看到AMP页面的提示了,当用户搜索相关关键词时,谷歌会优先将AMP域名展现出来(优待展现+闪电标记...Some text img src=sample.jpg width=300 height=300>amp-img> p> <amp-ad width=300 height

    3.3K70

    前端安全配置xss预防针Content-Security-Policy(csp)配置详解

    ' cdn.example.com默认策略,可以应用于js文件/图片/css/ajax请求等所有访问script-src'self' js.example.com定义js文件的过滤策略style-src'self...' css.example.com定义css文件的过滤策略img-src'self' img.example.com定义图片文件的过滤策略connect-src'self'定义请求连接文件的过滤策略font-srcfont.example.com...frmae的策略sandboxallow-forms allow-scripts沙盒模式,会阻止页面弹窗/js执行等,你可以通过添加allow-forms allow-same-origin allow-scripts...none'object-src 'none'所有地址的咨询都不允许加载'self'script-src 'self'同源策略,即允许同域名同端口下,同协议下的请求data:img-src 'self'...*.example.com允许从 example.com下的任意子域名加载资源https://cdn.comimg-src https://cdn.com仅仅允许通过https协议来从指定域名下加载资源

    10K10
    领券