我有一个由两部分组成的字符串,部分总是由空格和|分隔。像这样:
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 |二部
答案 0 :(得分:0)
非正则表达式的回答:
str.split("|").join(
" ".repeat(9 /*whitespaces*/) + "|"
)
或者使用正则表达式:
str.replace(/\|/," ".repeat(9)+"|")
答案 1 :(得分:0)
您可以使用padStart和padEnd。因为你说你希望他们有一定的长度。
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 );