Преобразование исключенных литералов в специальные с помощью JavaScript - PullRequest
0 голосов
/ 23 марта 2011

Я хочу ввести текст, который пользователи могут вводить специальными символами, такими как \ n .Однако, когда я пытаюсь получить значение внутри ввода, я получаю экранированную строку.Мне нужно удалить значение или какие-нибудь обходные пути?

РЕДАКТИРОВАТЬ : я поставил пример http://jsfiddle.net/9hmHr/

Ответы [ 2 ]

1 голос
/ 23 марта 2011

Вы имеете в виду это?

<textarea id="x">hello\ndolly</textarea>
<button onclick="alert(document.getElementById('x').value.replace(/\\n/g,'\n'))">Click</button>

Демонстрация разветвленного кода из вашего кода

var str = 'aaasddd';

alert(
  str.replace('s', 
    $('#my').val().replace(/\\n/g,'\n')
  )
);
0 голосов
/ 03 января 2014

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

var x = "\\thello\\n\\tworld",
    y = JSON.parse(
        JSON.stringify(x).replace(/\\\\/g,'\\')
    );

console.log("Original:");
console.log(x);

console.log("Literal:");
console.log(y);

Вышеуказанные выходы:

Original:
\thello\n\tworld

Literal:
    hello
    world

Надеюсь, это поможет!

ПРИМЕЧАНИЕ : Это может не работать со строками, которые могут содержать фигурные скобки ({ или }), так как он может пытаться преобразовать его в литерал объекта. Вы можете избежать этого, добавив escape-символы в скобках. (например, изменение "\{" на "\\\{")

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