首页 > 解决方案 > 如何处理多个新行,直到在javascript中到达一个空行?

问题描述

让我们考虑一下!

const str = `
    Get between @
          Yes me.

    Get between @
          Me, Me.
          Yes.

`

名为parse()的函数可以执行以下操作:

console.log( parse( str ) )

输出 :

Get between this.
Get between this.

所以,你可能会感到困惑,我在说什么?所以,我正在清除它。您可以看到parse()用 this 替换了@和空行之间的内容. 那么,我该如何制作这个功能。这是我的尝试:

const str = `
    Get between @
          Yes me.

    Get between @
          Me, Me.
          Yes.

`;

const parse = (val) => {
    val = val.replace(
    /\b@\b([\S\s]*?)\n/gm, "this." 
     )
    return val
};

console.log(parse(str));

但它并没有像我希望的那样工作。我知道我已经放\n了最后一个,它将赶上第一条新行,但我不明白如何处理空行所在的多个换行符。那么你能帮我改善我的功能吗?

标签: javascriptregexreplace

解决方案


您也可以匹配之前的字符串@,然后替换@thisand\n

const str = `
    Get between @
          Yes me.

    Get between @
          Me, Me.
          Yes.

`
const parse = (val) => {
    val = val.match(
     /\w.*@/g).join().replace(/(@,)|@/g, 'this.\n')
    return val
}

console.log(parse(str))


推荐阅读