replace () не работает должным образом, пытаясь заменить символы новой строки (/ n / rn / r) в JavaScript - PullRequest
0 голосов
/ 20 февраля 2019

Я только что начал использовать JavaScript, так что это может быть просто синтаксическая ошибка, которую я пропускаю, или ошибка регулярного выражения, но источник кода, похоже, был хорошо принят.

Я получил свой код от этот вопрос.

Если я передаю строку This is a string \n, она не заменяет \n и выводит на веб-страницу This is a string \n.

Мой код следующий:

<p id="commandOutput">Click run and it will output here</p>

<script type="text/javascript">

    var exampleSocket = new WebSocket("ws://localhost:8080/ws")

    var update = function(){
        exampleSocket.onmessage = function (event) {
            document.getElementById("commandOutput").innerHTML = event.data.toString().replace(/(?:\r\n|\r|\n)/g, "<br/>");
        }
    };

    window.setTimeout(update);

</script>

Мой вопрос относится к этой строке:

 document.getElementById("commandOutput").innerHTML = event.data.toString().replace(/(?:\r\n|\r|\n)/g, "<br/>");

1 Ответ

0 голосов
/ 20 февраля 2019

Как упомянул @Pointy, проблема заключается в следующем:

Регулярное выражение работает со специальными управляющими символами для возврата каретки и перевода строки, а не с литералом \n

Как упомянул @ChrisG, чтобы обойти это, вы можете:

Использовать \\n для маскировки обратной косой черты

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