Solved

Javascript: Using eval() with a string containing double quotes and single quotes

Posted on 2012-03-14
9
984 Views
Last Modified: 2012-03-14
Hello all.

I am trying to "push" values into an array after they've been used in an eval() statement. The issue I'm running into is that with the way I'm concatenating the string, the double quotes inside the "text being evalled" is causing the eval() function to choke.

Here is an example.

Description fields is equal to -------->        This is a test, "yes", a test

eval("obj." + "description" + " = '" + $('#description').val() + "'");      

With this as an example, the " in "yes" messes things up. I've tried using " but the & then messes it up. I've also tried replacing the " with \".

Any suggestions on how to "escape" the double quote?
0
Comment
Question by:Webspeeder
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
9 Comments
 
LVL 11

Expert Comment

by:SANDY_SK
ID: 37721866
have you tried replacing " with \\\" OR \\\\\"

That is escaping the the escaping character
0
 
LVL 18

Expert Comment

by:Rajar Ahmed
ID: 37721926
instead of
eval("obj." + "description" + " = '" + $('#description').val() + "'");
have u tried like below
eval("obj." + "description" + " = '" + $('#description').val().replace('"','\"') + "'");
0
 

Author Comment

by:Webspeeder
ID: 37721987
replacing " with \" generates this JS error in firebug.

Error: missing ; before statement
Source File: http://10.9.10.220/js/jquery2/jquery-1.6.2.min.js
Line: 38, Column: 22
Source Code:
obj.description = '9' 6" 2PC 3LBL testing 3'

Well, looking at the message closely, why would this be tied to jQuery?

var xx = htmlEncode($('#description').val());
eval("obj." + "description" + " = '" + xx + "'");

function htmlEncode(value){
  return value.replace(/"/g,'\"');
}
0
Revamp Your Training Process

Drastically shorten your training time with WalkMe's advanced online training solution that Guides your trainees to action.

 

Author Comment

by:Webspeeder
ID: 37721999
When trying to "escape the escape character", I get this:

Error: missing ; before statement
Source File: http://10.9.10.220/js/jquery2/jquery-1.6.2.min.js
Line: 38, Column: 22
Source Code:
obj.description = '9' 6\\" 2PC 3LBL testing 3'
0
 

Author Comment

by:Webspeeder
ID: 37722004
Might it be the single quote messing it up?
0
 

Author Comment

by:Webspeeder
ID: 37722006
I've tried escaping both with \' and \"
0
 
LVL 11

Expert Comment

by:SANDY_SK
ID: 37722077
can you paste that portion of the code if you don't mind.
0
 
LVL 19

Accepted Solution

by:
Albert Van Halen earned 250 total points
ID: 37722155
Just use
obj["description"] = $("#description").val();

Open in new window

0
 

Author Closing Comment

by:Webspeeder
ID: 37722427
That did it. Thank you very much.
0

Featured Post

Online Training Solution

Drastically shorten your training time with WalkMe's advanced online training solution that Guides your trainees to action. Forget about retraining and skyrocket knowledge retention rates.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

In my daily work (mainly using ASP.net), I need to write a lot of JavaScript code. One of the most repetitive tasks I do are the jQuery Ajax calls. You know: (CODE) I don't know if for you it's the same, but for me is soooo tedious to write the …
Nothing in an HTTP request can be trusted, including HTTP headers and form data.  A form token is a tool that can be used to guard against request forgeries (CSRF).  This article shows an improved approach to form tokens, making it more difficult to…
The viewer will learn the basics of jQuery, including how to invoke it on a web page. Reference your jQuery libraries: (CODE) Include your new external js/jQuery file: (CODE) Write your first lines of code to setup your site for jQuery.: (CODE)
The viewer will learn the basics of jQuery including how to code hide show and toggles. Reference your jQuery libraries: (CODE) Include your new external js/jQuery file: (CODE) Write your first lines of code to setup your site for jQuery…

739 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question