首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何创建regex,在每3-4个字母之后添加一个空格?

如何创建regex,在每3-4个字母之后添加一个空格?
EN

Stack Overflow用户
提问于 2022-04-04 20:46:23
回答 2查看 32关注 0票数 1

如何创建一个正则表达式,在每3-4个字母之后自动添加一个空格?

我目前已经创建了一个regex,但是它只在向输入中添加一个字母之后才会添加一个空格:

代码语言:javascript
复制
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));

输出是这样的。

代码语言:javascript
复制
123 456 7890
123 456 789
123 4567
123 456
1234
123

如何重建这个正则表达式,以便输出是这样的?

代码语言:javascript
复制
123 456 789 0
123 456 789
123 456 7
123 456
123 4
123

谢谢。

EN

回答 2

Stack Overflow用户

发布于 2022-04-04 20:49:54

目前,..在匹配后需要两个字符。如果要在匹配后允许一个字符,请删除其中一个通配符:

代码语言:javascript
复制
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));

这将产生您正在寻找的确切输出。

票数 2
EN

Stack Overflow用户

发布于 2022-04-05 20:38:17

如果只有数字,则还可以匹配3位数字,并在使用模式\d{3}\B后断言非字边界。

代码语言:javascript
复制
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));

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71743539

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档