角管:无法替换 /n



我一直在尝试制作一个管道来替换消息中的某些字符,这是管道的代码:

import { Pipe, PipeTransform } from '@angular/core';
@Pipe({name: 'replace'})
export class ReplacePipe implements PipeTransform {
  transform(value: string): string {
    console.log(value);
    let newValue = value.replace(/n/g, '<br>');
    console.log(newValue);
    return `${newValue}`;
  }
}

我在页面上使用它:

  <ion-card-content [innerHtml]="message | linky | replace"></ion-card-content>

问题:当替换语句是这样时,它可以工作:

let newValue = value.replace('bit', '<br>');

,但是当看起来像这样时什么都不做:(我需要为此工作(

let newValue = value.replace(/n/g, '<br>');

我似乎无法弄清楚我要在哪里出错。

我能够通过将<br>放置为double quotes并将额外的添加到n。我不知道为什么我需要这样做才能使它起作用,但现在可以很好地工作。这是解决方案:

import { Pipe, PipeTransform } from '@angular/core';
@Pipe({name: 'replace'})
export class ReplacePipe implements PipeTransform {
  transform(value: string): string {
    console.log(value);
    if(value) {
    let newValue = value.replace(/\n/g, "<br>").replace(/&/g, "&amp;");
    console.log(newValue);
    return `${newValue}`;
  }
  }
}

当您说它不起作用时,这意味着Console.log(newValue(将输出作为"某物 n某物"而不是"某物"

某物?是否有任何形式的错误消息?

我刚刚获取了您的确切代码并在此处进行了测试并起作用。

var value = "asd n more stuff";
console.log(value)
let newValue = value.replace(/n/g, '<br>');
console.log(newValue)

您确定 n字符在字符串中吗?它可能是字符串。尝试一下:let newValue = value.replace(/\n/g, '<br>');您需要的原因是因为您的字符串精算cointains "n"而不是newline字符。在REGEX n中是一个newline字符,\n"n"作为字符串。

我也正在处理以这种方式返回行,但只是发现您可以轻松地使用CSS显示这些线路的跳跃。{ white-space: pre; }

相关内容

  • 没有找到相关文章