将字符串中的数字替换为该数字减1 JS
4个回答
展开全部
以下函数可以将字符串中的数字替换为该数字-1,非数字保持不变,0替换为-1
function func(str){
var output = [];
for(var i = 0, iLen = str.length; i < iLen; i++){
if(str[i].match(/\d/)){
output.push(str[i] - 1 + '');
}else{
output.push(str[i]);
}
}
return output.join('');
}
func('123abc456def');//"012abc345def"
解释:
str[i].match(/\d/)判断该字符是否为数字
output.push(str[i] - 1 + '');将数字减去1后通过加上空字符串隐式转换为字符串类型
output.push(str[i]);将非数字类型的字符串直接放到输出数组中
output.join('')将数组转为一个字符串
展开全部
这个是js解释器编写的原因。
简单的理解是:‘-’这个在js里面没有其它的用途,只用于数字运算操作。只支持减法。
而且js具有隐式类型转换,所以会把非数字的转换成数字,如果转换不成功,结果为NaN。
简单的理解是:‘-’这个在js里面没有其它的用途,只用于数字运算操作。只支持减法。
而且js具有隐式类型转换,所以会把非数字的转换成数字,如果转换不成功,结果为NaN。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
<script type="text/javascript">
function GetnewStr(oldstr) {
var newstr = "";
for (var i = 0; i < oldstr.toString().length; i++) {
var onec = oldstr.toString().substr(i, 1);
if (onec >= 0 && onec < 10)
onec = Number(onec) - 1;
newstr += onec;
}
return newstr;
}
alert(GetnewStr("ad2df2df5"))
</script>
function GetnewStr(oldstr) {
var newstr = "";
for (var i = 0; i < oldstr.toString().length; i++) {
var onec = oldstr.toString().substr(i, 1);
if (onec >= 0 && onec < 10)
onec = Number(onec) - 1;
newstr += onec;
}
return newstr;
}
alert(GetnewStr("ad2df2df5"))
</script>
追问
alert(GetnewStr("ad2df2df50"));输出结果的最后一项变成了5-1.
我这边的实际情况是,有一个“已成功(10个)”这样的东西,我想把其中的数字减一。
追答
哦,这样啊,你是想把整个数字-1而不是把每个数字-1咯,等会啊。
function GetnewStr(oldstr) {
var newstr = "";
var num = "";
for (var i = 0; i = 0 && onec
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询