我想把如下代码中字符串str中的“sz[*]”替换成数组sz相对应的值,但是在FF和IE中都只能原样输入str。使用String.match方法试了一下正则匹配,提示null,看样子应该是正则没有匹配上。各位前辈能否指点一下这个问题应该怎么处理?谢谢了先!<html>
<script language="javascript">var sz=["1","2","3","4","5"];var str="sz[1]+sz[2]+sz[3]+sz[4]+sz[5]";for(i=0;i<sz.length;i++)var reg="sz\["+i+"\]";//var reg="sz";alert(str.match(reg));str=str.replace(new RegExp(reg,"g"),sz[i]);document.write("\""+str+"\"");</script>
</html>
<script language="javascript">var sz=["1","2","3","4","5"];var str="sz[1]+sz[2]+sz[3]+sz[4]+sz[5]";for(i=0;i<sz.length;i++)var reg="sz\["+i+"\]";//var reg="sz";alert(str.match(reg));str=str.replace(new RegExp(reg,"g"),sz[i]);document.write("\""+str+"\"");</script>
</html>
解决方案 »
- onMouseOver 文字变色
- 有什么可以代替event.currentTarget吗?IE不支持这个,火狐支持
- 急求 js replace " 替换为 \"
- 就是关于javascript在网页中展示幻灯片的问题,不知问题在哪所以请教各位大侠
- event.keyCode google chrome 不支持?
- JS中一个动态变量写法的问题!
- 如何用JS对这个变量做隐藏或加密处理?????急!~~~~人在,立即给分!
- easyui-datagrid分页参数获取不到
- toFixed 在IE5中是否不能使用呀?IE5用什么方法实现该函数的作用呢?
- 发现论坛在netscape7下不能正常结帖。非要转到ie才可以
- DIV移动的问题,求助~!
- 在线急等,求解决,setTimeout执行的时候为什么会去执行其他方法的?
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
</head><body>
<script>
var sz = ["1","2","3","4","5"],
str = "sz[0]+sz[1]+sz[2]+sz[3]+sz[4]",
reg = /sz\[(\d)\]/g;
str = str.replace(reg, function(){
return sz[arguments[1]];
});
alert(str);
</script>
</body>
</html>
<html>
<script language="javascript">var sz=["1","2","3","4","5"];var str="sz[1]+sz[2]+sz[3]+sz[4]+sz[5]";for(i=0;i<sz.length;i++)
{
var reg="sz\\["+(i+1)+"\\]";//var reg="sz";alert(str.match(reg));str=str.replace(new RegExp(reg,"g"),sz[i]);}
document.write("\""+str+"\"");
</script>
</html>
sz.result = "25";var str="{1}+ {2} + {3} + {4} + {5} = '{'{result}'}'";
function format(temp, params){
var r = /'\{'|'}'|\{\s*(\w+).*?\}/g;
var s = temp.replace(r, function(m, m1){
if(m == "'{'"){
return "{";
} if(m == "'}'"){
return "}";
} if(m1){
var key = m1;
var val = params.hasOwnProperty(key)
? String(params[key])
: "";
return val;
}
return m;
});
return s;
}alert(format(str, sz));
str = "sz[0]+sz[1]+sz[2]+sz[3]+sz[4]",
reg = /sz\[(\d)\]/g;
str = str.replace(reg, function(){
var args = arguments;
for(var i in args){
console.log(i+": "+args[i]);
}
return sz[arguments[1]];
});
alert(str);