求一个js正则表达式:替换html内容中除了<img>标签外的特定字符为另外一个字符. 10

如下示例:asdfasdf<imgsrc=/img/app.jpgalt="苹果"/>这里是一个苹果,我们应该常吃我想替换"苹果"为"<strong>苹果</strong... 如下示例:
asdfasdf<img src=/img/app.jpg alt="苹果"/>这里是一个苹果,我们应该常吃
我想替换"苹果"为"<strong>苹果</strong>",但不能替换<img>的alt中的内容.
请大拿们出手
再例如:
asdfasdf
<img src=/img/app.jpg alt="苹果好吃" title="多吃苹果" />
(1)这里是一个苹果,我们应该常吃苹果.<br />
<img src=/img/app.jpg alt="香蕉" />

(2)这里是一个香蕉,我们应该少吃香蕉,多吃苹果

这里我只能替换(1)行和(2)行的"苹果"为<strong>苹果</strong>",其它地方不能动,也是能替换<img>中出现的香蕉.
展开
 我来答
百度网友2f757675
2016-09-21 · TA获得超过7233个赞
知道大有可为答主
回答量:7506
采纳率:90%
帮助的人:1888万
展开全部
<!DOCTYPE HTML>
<html>
 
<head>
    <title>Page Title</title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <script>
    onload = function (){
            var html = document.body.innerHTML;
            var reg = /(<img(?:(?!id|>).)*)(id[\=\"\'\s]+)?([^\"\'\s]*)([\"\']?)([^>]*>)/gi;
            var idx = 0;
                html = html.replace(reg, function($0, $1, $2, $3, $4, $5){
                    idx++;
                    if(typeof $2 == "undefined"){
                        return $1 + " id='" + idx + "'" + $3 + $4 + $5;
                    }
                    return $1 + $2 + idx + $4 + $5;
                });
                document.body.innerHTML = html;
        }
    </script>
</head>
 
<body>
<img src="acb.jpg" id="imgx" />
<ul>
    <li><img src="sdf.png" /></li>
    </ul>
      
</body>
 
</html>
wackyer
2016-09-21 · TA获得超过928个赞
知道小有建树答主
回答量:605
采纳率:71%
帮助的人:378万
展开全部
var s='asdfasdf<img src=/img/app.jpg alt="苹果"/>这里是一个苹果,我们应该常吃.\nasdf<img src=/img/app.jpg alt="香蕉"/>这里是一个香蕉,我们应该常吃';
var p=/(<img(?:(?!alt).)+alt=\"([^\"]+)\"[^>]*>[^<> ]*?)\2/g;
var v = s.replace(p,"$1<strong>$2</strong>");
alert(v);
追问
你的答案可否再修改下?
因为如果我出现在标签中的属性是title的话,你的匹配会失败,另外,如果在正文中出现了多次的苹果,也会失败.第三则是,不是所有的标签中的alt内容都是我要替换的,我只替换关键字,,具体可看我的补充.
tks!
追答


var s='asdfasdf<img src=/img/app.jpg alt="苹果"/>这里是一个苹果,我们应该常吃.\nasdf<img src=/img/app.jpg alt="香蕉"/>这里是一个香蕉,我们应该少吃香蕉,多吃苹果';
var p=/(<img[^>]*>[^<> ]*?)苹果/gi; 
var v = s.replace(p,"$1<strong>苹果</strong>"); 
alert(v);

/*
---------------------------
来自网页的消息
---------------------------
asdfasdf<img src=/img/app.jpg alt="苹果"/>这里是一个<strong>苹果</strong>,我们应该常吃.
asdf<img src=/img/app.jpg alt="香蕉"/>这里是一个香蕉,我们应该少吃香蕉,多吃<strong>苹果</strong>
---------------------------
确定   
---------------------------
*/
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式