首页 > 编程语言 >php js正则 解决 详情页图片超出问题 匹配img标签内容追加style样式,给富文本中的图片设置大小和居中显示

php js正则 解决 详情页图片超出问题 匹配img标签内容追加style样式,给富文本中的图片设置大小和居中显示

时间:2023-10-24 18:06:48浏览次数:34  
标签:style 给富 img 标签 replace content htmlstr 图片

做小程序或手机端经常会遇到商品详情,文章详情里带图片的从别的地方复制过来带着样式,导致超出屏幕显示不全的问题

php解决

function format_img($content,$style=''){
    if(empty($style))$style = 'max-width:100%;height:auto;';
    $content= preg_replace("/(\<img)(?!(.*?style=['\"](.*)['\"])[^\>]+\>)/i", "$1 style=\"\"$2" , $content); 
    return preg_replace("/(\<img.*?style=['\"])([^\>]+\>)/i", "$1".$style."$2" , $content); 
}

Js解决


function format_img(htmlstr){
	//正则匹配不含style="" 或 style='' 的img标签
	var regex1 = new RegExp("(i?)(\<img)(?!(.*?style=['\"](.*)['\"])[^\>]+\>)","gmi");
	//给不含style="" 或 style='' 的img标签加上style=""
	htmlstr = htmlstr.replace(regex1, "$2 style=\"\"$3");
        //正则匹配含有style的img标签
	var regex2 = new RegExp("(i?)(\<img.*?style=['\"])([^\>]+\>)","gmi");
	htmlstr = htmlstr.replace(regex2, "$2max-width:100%;height:auto;border:5px solid red;$3");
	return htmlstr;
}

还有一种比较变态的做法是直接用正则表达式删除img标签的width、height、style


<?php
$txt1='<a href="https://blog.bitefu.net/post/501.html" style="margin:0 auto;border-radius:6px; background-color: #ffb808;display: block;text-align: center;padding: 12px 12px 12px 12px;color:#fff; width: 180px;font-weight: bold;">查看历史中奖记录</a><img src="http://www.baidu.com/Uploads/ueditor/image/20170512/1494556977462196.jpg" title="1494556977462196.jpg" alt="timg.jpg" style="width: 524px; height: 689px;" width="524" height="689"><img src="http://www.baidu.com/Uploads/ueditor/image/20170512/1494556977462196.jpg" title="1494556977462196.jpg" alt="timg.jpg" style="width: 524px; height: 689px;" width="524" height="689">';
$txt1 = preg_replace( '/(<img.*?)(style=.+?[\'|"])|((width)=[\'"]+[0-9]+[\'"]+)|((height)=[\'"]+[0-9]+[\'"]+)/i', '$1' , $txt1); 
echo $txt1;
?>

标签:style,给富,img,标签,replace,content,htmlstr,图片
From: https://blog.51cto.com/u_16321125/8008822

相关文章

  • 【不限框架】超好用的3d开源图片预览插件推荐
    今天给大家推荐一款超好用的图片预览插件-image-preview简单说明image-preview是一款主要面向移动端web应用,同时兼容pc,基于原生js,不限框架,react,vue,angular都可以使用,使用webgl作为渲染界面,提供高性能,优质体验的图片预览插件。图片浏览大图时提供了细腻的交互体验,针对移动端......
  • 首屏图片展示
     找到一个首页过度动画:<template><divref="centerBg"class="centerBg"><!--mask--><divv-if="len"class="mask"><divclass="grid":style="{gridTemplateColumns:......
  • 使用Java语言 利用OpenCV,对两种图片相似度对比
    下边是代码部分importorg.opencv.core.*;importorg.opencv.imgcodecs.Imgcodecs;importorg.opencv.imgproc.Imgproc;importjava.io.*;importjava.net.URL;importjava.util.ArrayList;importjava.util.List;importorg.opencv.features2d.*;importorg.opencv.core.Mat......
  • SpringBoot上传图片到指定目录并回显
    一、概述案例:1.利用SpringBoot写一个后台2.接收前端传递过来的图片并保存到服务器。3.前端可以通过url访问上传过的图片步骤:1.写一个FileController专门用来接收前端提交的图片文件,并把图片保存到服务器的指定位置2.配置W......
  • 小程序修改富文本中图片行内样式
    //移除旧的样式   let html = data.goods_desc.replace(/<img[^>]*>/gi,  (match, capture)=> {        match = match.replace(/style="[^"]+"/gi, '').replace(/style='[^']+'/gi, '');                  retur......
  • PowerBuilder读取硬盘图片显示出来并保存到数据库中
    PowerBuilder读取硬盘图片显示出来并保存到数据库中 数据库是SQLSERVER 表:blobtab 列: id,int,主键自增 blobdata,image,二进制内容可空 注:PB中存储二进制数据和读取二进制数据只能用updateblob语句和selectblob语句  显示图片到控件里的代码://显......
  • 图片与Base64互转
    ///<summary>///Base64转图片///</summary>///<paramname="data"></param>publicImageBase64ToImage(stringdata){data=data.Replace("data:image/png;base64,","").Replace("data:image/jgp;b......
  • 良心软件!视频、音频、图片、文档等各种格式转换,甚至屏幕录像都支持!
    良心软件!视频、音频、图片、文档甚至录屏都支持!主打一个免费多功能的多媒体文件转换工具引言 温馨提示:上面视频中有3D环绕背景音乐,请带上耳机效果更好它能干些什么?看它自己做的自我介绍,它都有哪些功能,可以做什么事情: “ 支持各种类型的最新视频格式、音频格式......
  • 信创办公--基于WPS的Word最佳实践系列(图片背景的删除)
    一、删除类型(1)类型一:图片本身的背景颜色模块比较多,背景比较复杂(2)类型二:图片的背景颜色是非常单一的,比方说都是白色或者都是黑色二、对应的删除方法对于类型一这种背景,我们可以直接采取图片工具当中的扣除背景这样的一个命令;这样WPS中内置的自动智能识别功能便会自动将图片抠图出来,......
  • js_doucment.styleSheets获取StyleSheetList接口
    通过document.styleSheets可以获取到一个StyleSheetList接口constaStyleList=document.styleSheetsconsole.log(aStyleList.constructor.name)//StyleSheetListconsole.log(Object.prototype.toString.call(aStyleList))//[objectStyleSheetList]console.log(Arra......