我想在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"
它应该只替换用于转义字符的斜杠。
答案 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"