JS怎么实现char类型的文字转换数字之后自增长

weixin_40670014 2018-06-12 02:15:27
如图1,bh是char类型,转化int后,怎么实现自增长。图2,3生成的编号都错了。有没有大神支个招
...全文
563 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
weixin_40670014 2018-06-13
  • 打赏
  • 举报
回复
引用 7 楼 ambit_tsai 的回复:
[quote=引用 6 楼 weixin_40670014 的回复:] [quote=引用 5 楼 ambit_tsai 的回复:] [quote=引用 4 楼 weixin_40670014 的回复:] [quote=引用 2 楼 Free_Wind22 的回复:]

	var bh = '020';
	var ai = ('00' + (parseInt(bh, 10) + 1)).slice(-3);
	alert(ai);
谢谢大神,满足递增要求,就是到999点时候,再次获取得到的是000,在下面加判断就好了。 [/quote] 其实可以不用判断,直接截取后3位即可

var bh = '999';
var ai = parseInt(bh) + 1;
ai = ai.toString().substr(-3).padStart(3, '0');
[/quote] 那就不符合要求了,首先会判断bh的最大编号,如果没有最大编号,就赋值001,按照你所说的,直接截取的话,如果最大编号为999,那么下次会自动生成000,就不符合实际情况了。。。[/quote] 好吧,还以为你要从000开始呢,那做个判断咯[/quote] 谢谢咯
ambit_tsai-微信 2018-06-13
  • 打赏
  • 举报
回复
引用 6 楼 weixin_40670014 的回复:
[quote=引用 5 楼 ambit_tsai 的回复:] [quote=引用 4 楼 weixin_40670014 的回复:] [quote=引用 2 楼 Free_Wind22 的回复:]

	var bh = '020';
	var ai = ('00' + (parseInt(bh, 10) + 1)).slice(-3);
	alert(ai);
谢谢大神,满足递增要求,就是到999点时候,再次获取得到的是000,在下面加判断就好了。 [/quote] 其实可以不用判断,直接截取后3位即可

var bh = '999';
var ai = parseInt(bh) + 1;
ai = ai.toString().substr(-3).padStart(3, '0');
[/quote] 那就不符合要求了,首先会判断bh的最大编号,如果没有最大编号,就赋值001,按照你所说的,直接截取的话,如果最大编号为999,那么下次会自动生成000,就不符合实际情况了。。。[/quote] 好吧,还以为你要从000开始呢,那做个判断咯
weixin_40670014 2018-06-13
  • 打赏
  • 举报
回复
引用 5 楼 ambit_tsai 的回复:
[quote=引用 4 楼 weixin_40670014 的回复:] [quote=引用 2 楼 Free_Wind22 的回复:]

	var bh = '020';
	var ai = ('00' + (parseInt(bh, 10) + 1)).slice(-3);
	alert(ai);
谢谢大神,满足递增要求,就是到999点时候,再次获取得到的是000,在下面加判断就好了。 [/quote] 其实可以不用判断,直接截取后3位即可

var bh = '999';
var ai = parseInt(bh) + 1;
ai = ai.toString().substr(-3).padStart(3, '0');
[/quote] 那就不符合要求了,首先会判断bh的最大编号,如果没有最大编号,就赋值001,按照你所说的,直接截取的话,如果最大编号为999,那么下次会自动生成000,就不符合实际情况了。。。
ambit_tsai-微信 2018-06-13
  • 打赏
  • 举报
回复
引用 4 楼 weixin_40670014 的回复:
[quote=引用 2 楼 Free_Wind22 的回复:]

	var bh = '020';
	var ai = ('00' + (parseInt(bh, 10) + 1)).slice(-3);
	alert(ai);
谢谢大神,满足递增要求,就是到999点时候,再次获取得到的是000,在下面加判断就好了。 [/quote] 其实可以不用判断,直接截取后3位即可

var bh = '999';
var ai = parseInt(bh) + 1;
ai = ai.toString().substr(-3).padStart(3, '0');
weixin_40670014 2018-06-13
  • 打赏
  • 举报
回复
引用 2 楼 Free_Wind22 的回复:

	var bh = '020';
	var ai = ('00' + (parseInt(bh, 10) + 1)).slice(-3);
	alert(ai);
谢谢大神,满足递增要求,就是到999点时候,再次获取得到的是000,在下面加判断就好了。
weixin_40670014 2018-06-13
  • 打赏
  • 举报
回复
引用 1 楼 jslang 的回复:
没看懂你的意思,能举个例子吗?
如图一,‘bh’如果不为空,就会从char类型转换成int然后拼接在一起,拼接后的数字不是递增的。 例如:bh=139 拼接后得到的bh=1140 就会报错,后边判断长度等于3位 就会报错
2018-06-13
  • 打赏
  • 举报
回复

	var bh = '020';
	var ai = ('00' + (parseInt(bh, 10) + 1)).slice(-3);
	alert(ai);
天际的海浪 2018-06-12
  • 打赏
  • 举报
回复
没看懂你的意思,能举个例子吗?

87,997

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧