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

Моля, помогнете ми как да предам низ (който не мога да редактирам, като идва от DB) с двойни кавички към метод в javascript.

*Моля, обърнете внимание, че това „Здравей, „свят“, добре дошъл...“ идва от DB, който не мога да редактирам. За да разберете лесно как идва форматът, го поставих тук по следния начин

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

Всъщност работех върху това нещо в EXtjs 3.4 изгледа за групиране за магазин за групиране.

Pelase ми помогне с това.


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 add обяснено във въпроса, който правех това в 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...";

ДЕМО Ако низът в DB не може да бъде променен ръчно. Вместо това използвайте единични кавички.

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

Не можете да оцветите параметъра в сиво. За съжаление не можете да скриете и параметъра, тъй като скритото свойство приема само True и False. Това, което правите сега, може да е най-доброто, което можете да направите. Можете обаче да опитате да разгледате каскадни параметри, може би ще можете да предоставите малко по-удобна за потребителя стойност като „Няма“ в падащото меню.

- person Gokul Potluri; 21.11.2013