JS Regex将空格添加到字符串

时间:2017-08-08 14:43:44

标签: javascript regex

我有一个由两部分组成的字符串,部分总是由空格和|分隔。像这样:

teststring | secondstring

只能使用Javascript regex.replace()在部件之间添加预定义的空间数量?

我试过这样的事情:

([^\|]+)(\s){0,17}(?(R2)\s|\s)([\|a-zA-Z0-9]+)

替换:

$1$2$3

可以重复取代捕获组,例如$2{17}或多次匹配相同的空格?

编辑: 我有功能

function InvokeRegexp(originalString, pattern, replaceExpr)
{
    return originalString.replace(pattern, replaceExpr);
}

我希望传递两部分文本,包含空格数的模式或者包含空格数的replaceExpr并获得结果:firstpart |二部

2 个答案:

答案 0 :(得分:0)

非正则表达式的回答:

 str.split("|").join(
  " ".repeat(9 /*whitespaces*/) + "|"
 )

或者使用正则表达式:

str.replace(/\|/," ".repeat(9)+"|")

答案 1 :(得分:0)

您可以使用padStartpadEnd。因为你说你希望他们有一定的长度。



const input = 'teststring  |    secondstring';

// Split the input variable and select spaces as well.
// 1. Select multiple spaces: \s+
// 2. Select pipe: \|
// 3. Select all following spaces: \s+
const parts = input.split( /\s+\|\s+/ );

// So every part should be at least 20 chars in this example.
const len = 20;
const output = `${ parts[ 0 ].padEnd( len ) }|${ parts[ 1 ].padStart( len )}`;

console.log( output );