JavaScript

JvavScript正则取img的alt值问题

我最近最想做的一件事情就是找坨大便摔到IE开发人员的脸上,先说事情吧。

在Discuz!可视化编辑器和UBB编辑器之转换的时候,比如本来是

<img src="http://www.love.com/Discuz!6.0/images/avatars/noavatar.gif" border="0" alt="头像"/>

但是IE给的内容是

<img alt=头像 src="http://www.love.com/Discuz!6.0/images/avatars/noavatar.gif" border=0/>

好好的双引号硬是给我吃了,莫非你很饿么?
本来用的正则是re = /alt=(["']+)([\s\S]*?)(\1)/i;去匹配出alt的值出来。
结果IE给出的内容就没法匹配,关键是没有双引号,而且alt值有能位任意值,Firefox就没有这个问题。

很是郁闷,有机会让我见者了开发IE浏览器内核的人,我一定丢坨大便给他,估计每个和JavaScript以及各个版本浏览器大交道的同行都有次想法吧:)

最后的解决方式是:加了另外加了个正则
re = /alt=([\s\S]*?)(>|\s>|\ssrc|\sborder|\swidth|\sheight|\s\/>|\”)/i;
去匹配IE产生的这些非标准内容。

阅读全文»

文章列表