Удалить escape-символы из строки, размещенной в API - PullRequest
0 голосов
/ 31 марта 2020

Я создаю веб-приложение, которое позволяет пользователю запускать функцию x количество раз и измерять вывод, используя Rosyln для компиляции в памяти, однако, поскольку его чтение из строки с использованием кавычек, новых строк и т. Д. c все использует экранировать символы, которые не компилируются.

Мой код на стороне клиента:

runCode() {
      let stripped = JSON.stringify(
        this.code.replace(/\/\*[\s\S]*?\*\/|\/\/.*/g, "")
      );
      stripped = stripped.replace(/\\n|\\t|\\r/gm, "");
      let api = this.$store.getters.api + "/Code";
      this.$http.post(api, { code: stripped }).then(res => {
        let data = res.data;
}}

, который удаляет новые строки и т. Д. c, однако, возьмите этот кодовый блок как пример ввода (оператор using для вывода вводится после отправки ):

using System;

namespace CodeEnv{
    //Don't change the class name
    public class SandBox{
        public void Run(){
          Output.WriteLine("Hello!");
        }
    }
}

Когда это достигает API, это выглядит так:

"\" с использованием System; пространство имен CodeEnv {publi c class SandBox {publi c void Run ( ) {Output.WriteLine (\\ "Hello! \\");}}} \ ""

Что не компилируется из-за всех символов "\", как я могу удалить все из них?

решено ::

используется code.Replace("\\\"", @""""); для замены их кавычками

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...