Regex будет излишним.Использовать метод String.Replace (String, String) :
string myString = @"a|bc\de,fg~h,ijk,lm|no\p";
myString = myString.Replace("|", "\\|").Replace(",", "\\,").Replace("~", "\\~").Replace("\\", "\\\\");
Это создает "a\|bc\\de\,fg\~h\,ijk\,lm\|no\\p"
Возможно, существует более одного способа вывести строку для JavaScript,Это будет зависеть от того, где вы генерируете строку.В целях иллюстрации, скажем, вы генерируете строку в коде и помещаете ее в некоторый элемент управления (например, скрытое поле, возможно) на клиенте.
В клиенте вы получите строку и будете использоватьJavascript String.Replace метод, что-то вроде этого, предполагая, что str1 равен "a\|bc\\de\,fg\~h\,ijk\,lm\|no\\p"
:
str1 = str1.Replace("\,", ",");
str1 = str1.Replace("\|", ",");
str1 = str1.Replace("\\", "\");
Прошло много времени с тех пор, как я сделал JavaScript, поэтому вам может потребоваться экранировать обратную косую черту с помощью другой обратной косой черты\\
).