2016-01-17 3 views
0

Мне нужно избежать строки со специальными символами, и я не знаю, как это сделать.JavaScript/jQuery escape специальные символы

Значение переменной String задано полем ввода, поэтому пользователь может написать любой специальный символ, как он хочет, даже те, которые я не знаю, и я мог бы разбить синтаксис ... поэтому вместо escape char char , я хочу знать, какой лучший метод для этого.

Это мой пример код:

string = '-|{}?" Hello \$#^*&@)(~'; 

newHTML= '<span class="color-red"><b>'+string+'</b></span>'; 

$('#my-div').append(newHTML); 

Но я получаю синтаксис error.I хочет избежать всех специальных символов ... как вы можете видеть этот детектор кода также не работает, когда я использую 'в строка

+0

Что ошибка синтаксиса вы получаете? Вы можете избежать символов в javascript, используя символ '\\' – mwilson

+0

Просто используйте встроенный метод text() в jquery, это кодирует строку перед добавлением ее в элемент. В моем ответе я использовал это поведение как трюк для кодирования строки: D – seahorsepip

+0

Также jquery кодирует кавычки уже при извлечении значения из входного элемента, иначе jquery уже сам ошибся при запросе оповестить значение входного элемента с цитатой в нем ... – seahorsepip

ответ

3

Или просто Jquery трюк:

string = $("<div></div>").text(string).html(); 

текст() кодирует строку внутри временного сНу и HTML() извлекает закодированную строку :)

2

Вы использовали символ эвакуации (обратная косая черта) \ в строке. Вы должны использовать escape-символ перед escape-символом, чтобы избежать его.

Таким образом, вы должны определить этот символ в строке как: \\

Вы видите, каждый специальный символ в гр на основе языках программирования/сценариев, следует использовать с экранирующим символом. Как новая строка или возврат. \n \r

+0

Строка вводится пользователем, поэтому ее нужно экранировать в js ... – seahorsepip

+0

Ну, это строка. Таким образом, javascript действительно ускользает на ходу, получая пользовательский ввод. Если он хочет избежать определенного символа, нужно просто заменить или фильтровать символы. –

+0

Да, я предполагаю $ («вход»). Val() уже экранирован сам jquery. – seahorsepip

Смежные вопросы