如何创建一个正则表达式,在每3-4个字母之后自动添加一个空格?
我目前已经创建了一个regex,但是它只在向输入中添加一个字母之后才会添加一个空格:
function format(s) {
return s.toString().replace(/\d{3,4}?(?=..)/g, "$& ");
}
console.log(format(1234567890));
console.log(format(123456789));
console.log(format(1234567));
console.log(format(123456));
console.log(format(1234));
console.log(format(123));
输出是这样的。
123 456 7890
123 456 789
123 4567
123 456
1234
123如何重建这个正则表达式,以便输出是这样的?
123 456 789 0
123 456 789
123 456 7
123 456
123 4
123谢谢。
发布于 2022-04-04 20:49:54
目前,..在匹配后需要两个字符。如果要在匹配后允许一个字符,请删除其中一个通配符:
function format(s) {
return s.toString().replace(/\d{3,4}?(?=.)/g, "$& ");
}
console.log(format(1234567890));
console.log(format(123456789));
console.log(format(1234567));
console.log(format(123456));
console.log(format(1234));
console.log(format(123));
这将产生您正在寻找的确切输出。
发布于 2022-04-05 20:38:17
如果只有数字,则还可以匹配3位数字,并在使用模式\d{3}\B后断言非字边界。
function format(s) {
return s.toString().replace(/\d{3}\B/g, "$& ");
}
console.log(format(1234567890));
console.log(format(123456789));
console.log(format(1234567));
console.log(format(123456));
console.log(format(1234));
console.log(format(123));
https://stackoverflow.com/questions/71743539
复制相似问题