以下脚本,我想把str中的数字2经过算术运算+1变成3,但是结果确为"NaN";<script type='text/javascript'>
var str = "c2",b="";
b = str.replace(/c(\d)/, (parseInt(RegExp.$1) + 1)+""); //结果:b="NaN";(parseInt(RegExp.$1) + 1)=2</script>
检查了一下这下面这句话(parseInt(RegExp.$1) + 1)的结果是等于3,但为什么3+""="NAN";咧?请教合位大虾,这是咋回事呀???
var str = "c2",b="";
b = str.replace(/c(\d)/, (parseInt(RegExp.$1) + 1)+""); //结果:b="NaN";(parseInt(RegExp.$1) + 1)=2</script>
检查了一下这下面这句话(parseInt(RegExp.$1) + 1)的结果是等于3,但为什么3+""="NAN";咧?请教合位大虾,这是咋回事呀???
整数+字串当然无法计算,得到NaN了。
b = str.replace(/c(\d)/, (parseInt(RegExp.$1) + 1).toString())
你正则都有问题,
是你的parseInt(RegExp.$1) 为NaN,我从来都没听说过会有 3+""=NaN的。
你输出你正则匹配的,你就明白了。又看到了所谓的 砖家
var str = "c2d",b="";
if(/c(\d)/.test(str))
b = str.replace(/c(\d)/, (parseInt(RegExp.$1) + 1)); //结果:b="NaN";(parseInt(RegExp.$1) + 1)=2alert(b);
</script>
+13+""结果只可能是"3",不可能为NaN
对楼主的误导,特在此致歉;对于我的回帖给Jparser带来的心情不爽也诚心致歉。如果你觉得这里道歉不足以显示诚意,告诉我一声,我可以另外开贴向你(Jparser )这个真正的专家致歉,呵呵
后面你可以这么用:
b=str.replace(/c(\d)/, function(al,su){alert(al+" "+su); return 你的东西});另外可以用exec,或test填充RegExp.$n,然后再用RegExp.$n用,这种方法三楼说得很好了。还有就是,可能是我修养还不够,每次看到这上面的所谓砖家的坑爹言词,都会有点不淡定。说小点是自己没搞很清楚,说大点是误人子弟。自己去查明资料,去实践了再来说,这样不是更好么。我很少发言,因自己水平有限,这次实在受不了了。有冒犯之处还请包含。
没有冒犯何来包含?
你不是修养不够,是年龄不够。过几年你就不这样了,哈。
客观的说,是人都会犯错误。如果你一天要回帖几十、上百的话,难保不会出状况的。坦率的说,正因为你很少发言,所以可以很冷静的分析别人的回帖;如果你发现“乱讲”的是一个裤衩,你不会激动;一旦发现“乱讲”的是挂星的,血立即上冲,对吗?(看看你8楼“每次看到这上面的所谓砖家的坑爹言词”)....上面这段不是为我自己找借口,只是泛泛的谈谈这种现象。我自己对你的道歉依旧成立
b = str.replace(/c(\d)/, function(w){
var number = w.substr(1) - 0+1;
return 'c'+number;
});
b = str.replace(/c(\d)/, "c"+ (parseInt(RegExp.$1)+1)); 我是可以的哦.