Передать строковый параметр с двойными кавычками в javascript

Пожалуйста, помогите мне, как передать строку (которую я не могу редактировать, например, из БД) с двойными кавычками в метод в javascript.

*Обратите внимание, что это "Hello "world", Welcome..." исходит из БД, которую я не могу редактировать. Чтобы вам было легче понять, как будет развиваться формат, я разместил его здесь вот так

var tempString = "Hello "world", Welcome...";
sampleMethod(tempString);
sampleMethod : function(tempString)
{
  &nbsp&nbsp&nbsp&nbspalert(tempString)<br>
}

На самом деле я работал над этим в EXtjs 3.4 Grouping View для Grouping Store.

Пожалуйста, помогите мне с этим.


person Gokul Potluri    schedule 19.11.2013    source источник
comment
заключить в одинарные кавычки?   -  person adeneo    schedule 19.11.2013
comment
возможно, вам следует объяснить, что происходит, когда вы пытаетесь передать строку своей функции js?   -  person Swifty    schedule 19.11.2013
comment
Можете ли вы показать нам код, который получает эту строку?   -  person Halcyon    schedule 19.11.2013
comment
@Swifty добавляет объяснение в вопросе, который я делал в extjs. Я передаю объект напрямую через код javascript в метод extjs, он принимает объект как [object Object] в параметре. Это дает мне ошибку.   -  person Gokul Potluri    schedule 19.11.2013
comment
Я предполагаю, что Frits хочет увидеть фактический код, в котором вы создаете этот объект, поскольку, если вы можете прочитать что-то в переменной JS, вы также должны иметь возможность редактировать это.   -  person Teemu    schedule 19.11.2013


Ответы (3)


Используйте \, чтобы избежать кавычек

var tempString = "Hello \"world\", Welcome...";

DEMO Если строку в БД нельзя изменить вручную. Вместо этого используйте одинарные кавычки.

var tempString = 'Hello "world", Welcome...';
person softvar    schedule 19.11.2013

Вы должны использовать одинарные кавычки для переноса строки.

var tempString = 'Hello "world", Welcome...';

Или вы можете избежать внутренних двойных кавычек с помощью &#34; (в зависимости от использования строки)

Или вы можете использовать регулярные выражения для изменения строки из базы данных. Читать это

person Arno    schedule 19.11.2013
comment
Please note this "Hello "world", Welcome..." is coming from DB which i cannot edit.. - person Teemu; 19.11.2013

Один из возможных способов изменить эту конкретную строку:

var tempString = "Hello \"world\", Welcome...";

var result = tempString.replace(/([^"]*)\"(\w*)\"([^"]*)/, "$1\'$2\'$3")

result должно быть "Привет, мир", добро пожаловать...".

Таким образом, вы можете вызвать метод

sampleMethod(tempString.replace(/([^"]*)\"(\w*)\"([^"]*)/, "$1\'$2\'$3"));

И если в мире есть место:

var tempString = "Hello \"wo r ld\", Welcome...";

эта замена лучше:

var result = tempString.replace(/([^"]*)\"([\w\s]*)\"([^"]*)/, "$1\'$2\'$3")
person Anto Jurković    schedule 19.11.2013
comment
Кстати, это решение взято из Regex для одиночной кавычки в одинарных кавычках - person Anto Jurković; 19.11.2013
comment
Несмотря на то, что ваше решение помогает мне на 100%, со ссылкой на ваше решение я заставил свою работу работать. Спасибо - person Gokul Potluri; 21.11.2013