我是javascript的新手,所以请放轻松我,
我在网页上有这个代码:
<script type="text/javascript"> bb1 = "oldcode"; bb2 = "morecodehgere"; bb3 = 160000;</script>
我想将所有页面加载中的1% oldcode 替换为 newcode
此代码在同一页面上有多个实例,我想全部替换它们。
window.onload = replaceScript;
function replaceScript() {
var randomNumber = Math.floor(Math.random()*101);
var toReplace = 'oldcode';
var replaceWith ='newcode';
if randomNumber == 1 {
document.body.innerHTML = document.body.innerHTML.replace(/toReplace/g, replaceWith);
}
}
这是我现有的代码,但它不起作用。
javascript是实现我想做的最好的方法吗?如果是这样,最好的办法是什么?
答案 0 :(得分:0)
正则表达式文字:
/toReplace/g
将创建一个与字符串“toReplace”匹配的正则表达式对象。如果要创建正则表达式以匹配变量toReplace
的(字符串)值,则必须使用RegExp构造函数:
var re = new RegExp(toReplace, 'g');
用自身的副本替换身体的innerHTML并不是一个好主意。 innerHTML属性不一定反映DOM的所有细微差别,也不包括动态添加的侦听器等内容。它也因浏览器而异。
使用正则表达式替换部分innerHTML几乎肯定会产生不可预测的结果,它可能在普通页面上运行良好但在复杂页面上不可靠。