将字符串中的数字替换为该数字减1 JS

 我来答
lyz810
2015-10-25 · 知道合伙人互联网行家
lyz810
知道合伙人互联网行家
采纳数:7531 获赞数:31779
前端开发工程师

向TA提问 私信TA
展开全部

以下函数可以将字符串中的数字替换为该数字-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"

解释:

  1. str[i].match(/\d/)判断该字符是否为数字

  2. output.push(str[i] - 1 + '');将数字减去1后通过加上空字符串隐式转换为字符串类型

  3. output.push(str[i]);将非数字类型的字符串直接放到输出数组中

  4. output.join('')将数组转为一个字符串

百度网友2571d37bb
2015-10-10 · 知道合伙人软件行家
百度网友2571d37bb
知道合伙人软件行家
采纳数:1971 获赞数:7905
前端工程师

向TA提问 私信TA
展开全部
这个是js解释器编写的原因。
简单的理解是:‘-’这个在js里面没有其它的用途,只用于数字运算操作。只支持减法。
而且js具有隐式类型转换,所以会把非数字的转换成数字,如果转换不成功,结果为NaN。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ch565097933
2011-08-19 · TA获得超过1044个赞
知道小有建树答主
回答量:825
采纳率:0%
帮助的人:513万
展开全部
<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>
追问
alert(GetnewStr("ad2df2df50"));输出结果的最后一项变成了5-1.
我这边的实际情况是,有一个“已成功(10个)”这样的东西,我想把其中的数字减一。
追答
哦,这样啊,你是想把整个数字-1而不是把每个数字-1咯,等会啊。

function GetnewStr(oldstr) {
var newstr = "";
var num = "";
for (var i = 0; i = 0 && onec
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
清湛且爽快的萨摩耶Q
2011-08-19
知道答主
回答量:21
采纳率:0%
帮助的人:4.7万
展开全部
1
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式