Angular2逃避斜线管

时间:2017-11-03 06:42:58

标签: javascript angular typescript angular-pipe

我想在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"

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

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

"ghda\'nja asda\\dasda dasj\' das\'da\\d as\\as\\sad".replace(/\'/g,"'")

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

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