复杂的正则表达式,帮忙解答 /(]+)/gi

火电 2007-06-13 04:21:26
FCKRegexLib.ProtectUrlsImgApo = /(<img\s.*?src=)("|')(.+?)\2/gi ;
FCKRegexLib.ProtectUrlsImgNoApo = /(<img\s.*?src=)([^"'][^ >]+)/gi ;


A=A.replace(FCKRegexLib.ProtectUrlsImgApo,'$1$2$3$2 _fcksavedurl=$2$3$2');

A=A.replace(FCKRegexLib.ProtectUrlsImgNoApo,'$1$2 _fcksavedurl="$2"');


麻烦详细解释下!做什么用?多谢!
...全文
6693 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
muxrwc 2007-06-14
  • 打赏
  • 举报
回复
TO:

slowhand(早起的鸟儿有虫吃,那么早起的虫子呢?)

那个式子写错了。。呵,改成这个。。

var p = /<(?:"[^"]*"|'[^']*'|[^>'"]*)+>/g;
muxrwc 2007-06-14
  • 打赏
  • 举报
回复
^o^
嘿,两个式子实现的时候涉及到一个已经替换掉了,然后属性的内容里有src=的若干种形式。。
解决方法。。


<textarea id="wc" style="width:900px;height:500px;">
<IMG style="WIDTH: 356px; HEIGHT: 315px" height=517 alt=查看更多精彩图片 src="http://photo5.hexun.com/p/2007/0414/89779/b_7362DB2E1960C63AF66A465D2F4122C1.jpg" width=500 onload="var image=new Image();image.src=this.src;if(image.width>0 && image.height>0){if(image.width>=510){this.width=510;this.height=image.height*510/image.width;}}" border=0>
<IMG style="WIDTH: 356px; HEIGHT: 315px" height=517 alt=查看更多精彩图片 src=wc border=0>
<IMG style="WIDTH: 356px; HEIGHT: 315px" height=517 alt=查看更多精彩图片 src=wc BT="var src=window ;this.src='某图片';" border=0>
</textarea>
<script type="text/javascript" defer="defer">
var FCKRegexLib = {};
FCKRegexLib.ProtectUrlsImgApo= /(<img\s(?:"[^"]*"|'[^']*'|[^>'"])*?src=)("|')(.+?)\2/gi ;
FCKRegexLib.ProtectUrlsImgNoApo= /(<img\s(?:"[^"]*"|'[^']*'|[^>'"])*?src=)([^"'][^ >]+)/gi ;
var wc = document.getElementById("wc"), A = wc.value;
A=A.replace(FCKRegexLib.ProtectUrlsImgApo,'$1$2$3$2 _fcksavedurl=$2$3$2');
A=A.replace(FCKRegexLib.ProtectUrlsImgNoApo, '$1$2 _fcksavedurl="$2"');
wc.value = A;
</script>
muxrwc 2007-06-14
  • 打赏
  • 举报
回复
to mingxuan3000(铭轩)

现在白痴都喜欢从图片里写JS。。
比如它这样写的呢?

<IMG style="WIDTH: 356px; HEIGHT: 315px" height=517 alt=查看更多精彩图片 src=wc BT="var src=window ;this.src='某图片';" border=0>

:D

var src = ....
哈哈,前面有空格吧?
mingxuan3000 2007-06-14
  • 打赏
  • 举报
回复
正则里src= 的前面应该是空格
hbhbhbhbhb1021 2007-06-13
  • 打赏
  • 举报
回复
"<"符号楼主帖子里没说,短消息里讲的,
:)不过只是上面的需求确实没有必要判断<
src就截止了
muxrwc 2007-06-13
  • 打赏
  • 举报
回复
:D
muxrwc 2007-06-13
  • 打赏
  • 举报
回复
<textarea id="wc">
<IMG style="WIDTH: 356px; HEIGHT: 315px" height=517 alt=查看更多精彩图片 src="http://photo5.hexun.com/p/2007/0414/89779/b_7362DB2E1960C63AF66A465D2F4122C1.jpg" width=500 onload="var image=new Image();image.src=this.src;if(image.width>0 && image.height>0){if(image.width>=510){this.width=510;this.height=image.height*510/image.width;}}" border=0>
</textarea>
<script type="text/javascript" defer="defer">
var p = /(<img\s.*?src=)(?:("|')(.+?)\2|([^ >]+))/gi;
var A = document.getElementById("wc").value;
A = A.replace(p, "$1\"$3$4\" _fcksavedurl=\"$3$4\"");
alert(A);
</script>
muxrwc 2007-06-13
  • 打赏
  • 举报
回复
/gg,他这个不涉及到包含>的这个情况。。
因为式子里。只有没引号的情况下才判断的是[^ >],但是没引号的情况下,地址里是不可能有>的,所以按空格匹配,就可以找到src内容结尾的。。所以当匹配到空格的时候整个式子就完整的匹配完一次了。。这样下次匹配还会从式子开头重新匹配。。这样还会跳过其他属性继续匹配img标记。。所以不会出现他说的情况。。
hbhbhbhbhb1021 2007-06-13
  • 打赏
  • 举报
回复
你说的在标签里含有<的问题,老问题喽
做个检验,只要别让这个<在引号里就可以了
mingxuan3000 2007-06-13
  • 打赏
  • 举报
回复
<script type="text/javascript">
var FCKRegexLib = {};
FCKRegexLib.ProtectUrlsImgApo = /(<img\s.*?src=)("|')(.+?)\2/gi ;
FCKRegexLib.ProtectUrlsImgNoApo = /(<img\s.*?src=)([^"'][^ >]+)/gi ;

var A = '<IMG style=\"WIDTH: 356px; HEIGHT: 315px\" height=517 alt=?看更多精彩?片 src=\"http://photo5.hexun.com/p/2007/0414/89779/b_7362DB2E1960C63AF66A465D2F4122C1.jpg\" width=500 onload=\"var image=new Image();image.src=this.src;if(image.width>0 && image.height>0){if(image.width>=510){this.width=510;this.height=image.height*510/image.width;}}\" border=0>';
//var A="<img src='wc.gif' \/>\n<img src=wc.gif \/>";
A=A.replace(FCKRegexLib.ProtectUrlsImgApo,'$1$2$3$2 _fcksavedurl=$2$3$2');

A=A.replace(FCKRegexLib.ProtectUrlsImgNoApo,'$1$2 _fcksavedurl="$2"');
alert(A);
</script>

没问题呀
火电 2007-06-13
  • 打赏
  • 举报
回复
就是fck那个

<IMG style=\"WIDTH: 356px; HEIGHT: 315px\" height=517 alt=查看更多精彩图片 src=\"http://photo5.hexun.com/p/2007/0414/89779/b_7362DB2E1960C63AF66A465D2F4122C1.jpg\" width=500 onload=\"var image=new Image();image.src=this.src;if(image.width>0 && image.height>0){if(image.width>=510){this.width=510;this.height=image.height*510/image.width;}}\" border=0>

就有问题,您帮忙看下,该如何修改正则表达式!
APM60- 2007-06-13
  • 打赏
  • 举报
回复
哈,又是这个问题。
今天muxrwc大哥怎么没飘过来?
看看这个
http://community.csdn.net/Expert/TopicView.asp?id=5395523
muxrwc 2007-06-13
  • 打赏
  • 举报
回复
即使是FCK的那个reg也不会出现你说的问题的。。
它不是匹配完整的img标记,只是匹配到内容"?
然后结束并从后面加那个东西。。
muxrwc 2007-06-13
  • 打赏
  • 举报
回复
<script type="text/javascript">
var p = /(<img\s.*?src=)(?:("|')(.+?)\2|([^ >]+))/gi;
var A = "<img src='wc.gif' \/>\n<img src=wc.gif \/>\n<img src='http://aaa.jpg' onload='if(aaa>0)....'>";
A = A.replace(p, "$1\"$3$4\" _fcksavedurl=\"$3$4\"");
alert(A);
</script>
有什么问题么?
火电 2007-06-13
  • 打赏
  • 举报
回复
/(<img\s.*?src=)("|')(.+?)\2/gi 我测试过了,就是你说的那样


/(<img\s.*?src=)([^"'][^ >]+)/gi 这个出了问题

例如 <img src="http://aaa.jpg" onload="if(aaa>0)...."> 这样有脚本的时候,他会先判断
并从aaa>0 的 >前添加连接,如何能够控制这种情况发生?
hbhbhbhbhb1021 2007-06-13
  • 打赏
  • 举报
回复
//正则替换

FCKRegexLib.ProtectUrlsImgApo = /(<img\s.*?src=)("|')(.+?)\2/gi ;
//设置两个正则
FCKRegexLib.ProtectUrlsImgNoApo = /(<img\s.*?src=)([^"'][^ >]+)/gi ;

//替换
把<img src="除回车等任意字符"
换成
原字符不变_fcksavedurl="或者'原来的SRC里的内容"或者'
A=A.replace(FCKRegexLib.ProtectUrlsImgApo,'$1$2$3$2 _fcksavedurl=$2$3$2');

//第二个和第一个实现相同功能
A=A.replace(FCKRegexLib.ProtectUrlsImgNoApo,'$1$2 _fcksavedurl="$2"');
muxrwc 2007-06-13
  • 打赏
  • 举报
回复
不过一个式子也可以实现同样的功能。。
<script type="text/javascript">
var p = /(<img\s.*?src=)(?:("|')(.+?)\2|([^ >]+))/gi;
var A = "<img src='wc.gif' \/>\n<img src=wc.gif \/>";
A = A.replace(p, "$1\"$3$4\" _fcksavedurl=\"$3$4\"");
alert(A);
</script>
muxrwc 2007-06-13
  • 打赏
  • 举报
回复
它只是把所有链接后面复制一个相同的链接,就相当于加了一个属性叫。_fcksavedurl内容与src属性内容相同。
muxrwc 2007-06-13
  • 打赏
  • 举报
回复
测试下这个你就知道了。。

<script type="text/javascript">
var FCKRegexLib = {};
FCKRegexLib.ProtectUrlsImgApo = /(<img\s.*?src=)("|')(.+?)\2/gi ;
FCKRegexLib.ProtectUrlsImgNoApo = /(<img\s.*?src=)([^"'][^ >]+)/gi ;

var A = "<img src='wc.gif' \/>\n<img src=wc.gif \/>";
A=A.replace(FCKRegexLib.ProtectUrlsImgApo,'$1$2$3$2 _fcksavedurl=$2$3$2');

A=A.replace(FCKRegexLib.ProtectUrlsImgNoApo,'$1$2 _fcksavedurl="$2"');
alert(A);
</script>
YOLO系列是基于深度学习的端到端实时目标检测方法。 PyTorch版的YOLOv5轻量而性能高,更加灵活和易用,当前非常流行。 本课程将手把手地教大家使用labelImg标注和使用YOLOv5训练自己的数据集。课程实战分为两个项目:单目标检测(足球目标检测)和多目标检测(足球和梅西同时检测)。 本课程的YOLOv5使用ultralytics/yolov5,在Windows系统上做项目演示。包括:安装YOLOv5、标注自己的数据集、准备自己的数据集、修改配置文件、使用wandb训练可视化工具、训练自己的数据集、测试训练出的网络模型和性能统计。 希望学习Ubuntu上演示的同学,请前往 《YOLOv5(PyTorch)实战:训练自己的数据集(Ubuntu)》课程链接:https://edu.csdn.net/course/detail/30793  本人推出了有关YOLOv5目标检测的系列课程。请持续关注该系列的其它视频课程,包括:《YOLOv5(PyTorch)目标检测实战:训练自己的数据集》Ubuntu系统 https://edu.csdn.net/course/detail/30793Windows系统 https://edu.csdn.net/course/detail/30923《YOLOv5(PyTorch)目标检测:原理与源码解析》课程链接:https://edu.csdn.net/course/detail/31428《YOLOv5目标检测实战:Flask Web部署》课程链接:https://edu.csdn.net/course/detail/31087《YOLOv5(PyTorch)目标检测实战:TensorRT加速部署》课程链接:https://edu.csdn.net/course/detail/32303《YOLOv5目标检测实战:Jetson Nano部署》课程链接:https://edu.csdn.net/course/detail/32451《YOLOv5+DeepSORT多目标跟踪与计数精讲》课程链接:https://edu.csdn.net/course/detail/32669《YOLOv5实战口罩佩戴检测》课程链接:https://edu.csdn.net/course/detail/32744《YOLOv5实战中国交通标志识别》课程链接:https://edu.csdn.net/course/detail/35209《YOLOv5实战垃圾分类目标检测》课程链接:https://edu.csdn.net/course/detail/35284       

87,921

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧