如何解决如何使用JavaScript在每两个数字之间添加空格?
我喜欢在每两个数字后输出一个带空格的格式化数字,我已经尝试过了:
function twoSpaceNumber(num) {
return num.toString().replace(/\B(?<!\.\d)(?=([0-9]{2})+(?!\d))/g," ");
}
twoSpaceNumber(12345678)
=> 1 23 45 67 89
(应该以12开始?)
当它以0开头时,我的输出也很奇怪
twoSpaceNumber(012345678)
=> 12 34 56 78
解决方法
请考虑
var s = "1234456";
var t = s.match(/.{1,2}/g);
var u = t.join(" ");
console.log(u);
记录
12 34 45 6
和
var s = "ABCDEF";
var t = s.match(/.{1,2}/g);
var u = t.join(" ");
console.log(u);
记录
AB CD EF
请注意,s
是字符串。
是您需要的吗?
,将num
作为字符串而不是数字传递,否则前导零将消失并使用
function twoSpaceNumber(num) {
return num.replace(/\d{2}(?!$)/g,"$& ");
}
正则表达式匹配两个不在字符串末尾的数字(以免在字符串末尾添加空格)。
JavaScript演示
const regex = /\d{2}(?!$)/g;
function twoSpaceNumber(num) {
return num.replace(regex,"$& ");
}
const strings = ['123456789','012345678'];
for (const string of strings) {
console.log(string,'=>',twoSpaceNumber(string));
}
,
如果您不介意使用非正则表达式:
function twoSpaceNumber(num) {
var res = '';
num += '';
for(var i = 0; i < num.length; i+=2)
{
res += num.substr(i,2) + ' ';
}
return res.trim();
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。