js 批量替换字符串

JavaScript017

js 批量替换字符串,第1张

给你个笨方法

var imgDom = document.getElementsByTagName('img'),

    i = 0,

    n

while(n = imgDom[i]){

    var src = n.getAttribute('src')

    n.src = 'aaa.com' + src

    i++

}

imgDom = null, n = null

我写了代码如下, 测试可行, 供参考:

//主要靠这个函数实现: 将body下的文本节点中的searchWord, 替换为replaceWord

function replaceBodyText(searchWord, replaceWord){

    var reg = new RegExp(searchWord, 'g')

    function replaceNode(node){

        node.childNodes.forEach(function(v){

            if(v.nodeName === 'SCRIPT')

                return //排除<script>标签

            if(!v.hasChildNodes()){

                if(reg.test(v.textContent))

                    v.textContent = v.textContent.replace(reg, replaceWord)

                return

            }

            replaceNode(v)

        })

    }

    replaceNode(document.body)

}

//绑定一个事件测试用, 点击这个按钮后才会执行

document.querySelector('#testBtn').addEventListener('click', function(){

    replaceBodyText('中国', '美国')

})

//实际使用中直接调用函数即可:

//以下语句表示将所有文本节点中的"中国"替换为"美国:

//replaceBodyText('中国', '美国')

var str = '<div class="demo1" style="height: auto min-height: 0px width: 1500px color:red “>内容1</div>'+

'<div class="demo1" style="height: auto min-height: 0px width: 1500px color:red “>内容2</div>'+

<div class="demo2" style="height: auto min-height: 0px width: 1500px color:red “>内容3</div>'

str = str.replace(/width\:\s*(\d)+/g,'width: 1000')

这样后str就是替换后的结果