正则表达式在特定位置添加空格

时间:2017-07-06 11:28:57

标签: javascript regex

我有一个14位长的数字,我需要分成这种格式:

xxx xxx xxx xxxxx

我有一个正则表达式,从结尾开始分割每3个字符(因为前瞻?)

(?=(\d{3})+(?!\d))

这给了我:

xx xxx xxx xxx xxx

我尝试在regex101.com中使用lookbehind但是我遇到了模式错误......

(?<=(\d{3})+(?!\d))

我如何使用lookbehind以便从字符串的开头开始(如果这是我的问题)以及如何重复该模式仅3次然后切换到\d{5}

2 个答案:

答案 0 :(得分:2)

您可以使用类似的内容:https://regex101.com/r/yqmyvs/3

这个正则表达式是:

(?:\d{3})(?:\d{2}$)?

这基本上说:我想要三个数字的组,除非它是字符串的结尾,在这种情况下我想要5。

尽管如此,正如你的问题所评论的那样,这通常不是你通常使用正则表达式的东西。

答案 1 :(得分:2)

试试这个:

(\d{3})(\d{3})(\d{3})

并替换为:

"$1 $2 $3 "

Regex 101 demo

const regex = /(\d{3})(\d{3})(\d{3})/g;
const str = `12345678901234`;
const subst = `$1 $2 $3 `;
const result = str.replace(regex, subst);
console.log( result);