【问题标题】:Angular2 escape slash PipeAngular2转义斜线管
【发布时间】:2017-11-06 04:12:28
【问题描述】:

我想在 Angular 2 中创建一个管道,它将替换给定字符串中用于转义特殊字符的“\”。

到目前为止我做了什么,

管道类如下

@Pipe({
  name: 'escapeSlashPipe'
})

export class EscapeSlashPipe implements PipeTransform {
  transform (value: string): any{
    value = value.replace(/\\"/g, '"');
    return value;
  }
}

html

<p>{{message | escapeSlashPipe}}</h4>

示例输入

"ghda\'nja asda\\dasda dasj\' \"das\'da\\d as\\as\\sad"

那么它应该返回

"ghda'nja asda\dasda dasj' das'da\d as\as\sad"

它应该只替换用于转义字符的斜线。

【问题讨论】:

  • 你得到的确切错误是什么,因为我已经尝试过你的代码并且它工作正常。我得到了预期的结果。
  • 它给了我与输入相同的输出,返回相同的字符串。

标签: javascript angular typescript angular-pipe


【解决方案1】:

当您使用 value.replace(/\\"/g, '"'); 时,您将选择以下字符序列:\" 并将它们替换为以下字符 "

所以,你看,它只适用于双引号。

你可以使用不同的东西:

let value = "Lorem \\\" ipsum \\' dolorem \\\\ javascript";
// value: Lorem \" ipsum \' dolorem \\ javascript

// Because JavaScript is already able to escape characters by itself
// So I needed to escape also the backslash

value = value.replace(/(\\)(\W)/g, '$2');
// value: Lorem " ipsum ' dolorem \ javascript

【讨论】:

    【解决方案2】:
    "ghda\'nja asda\\dasda dasj\' das\'da\\d as\\as\\sad".replace(/\'/g,"'")
    

    您可以尝试上述方法并告诉我。它为我返回以下内容,

    "ghda'nja asda\dasda dasj' das'da\d as\as\sad"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-01-24
      • 2019-07-28
      • 2011-11-04
      • 1970-01-01
      • 2016-03-27
      • 2012-07-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多