swickblade
swickblade

Reputation: 4666

How can I accommodate a string with both single and double quotes inside of it in JavaScript

I have an application, and it is fed some HTML. It then needs to put that HTML into a string. This HTML contains single and double quotes. Is it possible, in javascript, to declare a string with information inside of it, that does not use single or double quotes?

I guess if it is not possible, does anyone know a simple and easy way to escape these quotes so I can put it in a string? Keep in mind, part of this string will be JavaScript that I will later need to execute.

Upvotes: 14

Views: 16654

Answers (5)

Amerul Atiq
Amerul Atiq

Reputation: 51

I know that this is an old question but there is a way of handling it that no one here brought up yet and it's template literals. Basically, this symbol (`), known as backticks. They work the same way as single and double quotes, with the addition of multi-line support.

For example, the below String contains both quote types. Using backticks, this fixes the problem:

var str = `This is a quote ' and a doublequote ".`;

Since backticks aren't commonly used (or found on the keyboard), it shouldn't cause any issues.

EDIT: Nvm. Backticks are on the keyboard. Still not very commonly used though.

Upvotes: 0

digitalbath
digitalbath

Reputation: 7354

You need to escape the quotation characters with \:

var someString = 'escape all the quotation marks \"\'';

Upvotes: 13

Matt Ball
Matt Ball

Reputation: 359986

Is it possible, in javascript, to declare a string with information inside of it, that does not use single or double quotes?

No. JavaScript string literals are delimited with either single quotes or double quotes. Those are the only choices.

does anyone know a simple and easy way to escape these quotes so I can put it in a string?

Do you mean in a string literal?

var str = "var foo=\"bar\"; function say(it) { alert('It is: ' + it); say(foo);";

Or programmatically?

str = str.replace(/"/g, '\\"');

Upvotes: 4

James Allardice
James Allardice

Reputation: 166031

Use the escape function to replace special characters (including single and double quotes). You can then use the unescape function to return the string to it's normal state later if necessary.

For example:

var data = 'hello my name is "James"';
alert(escape(data)); //Outputs: hello%20my%20name%20is%20%22James%22

Upvotes: 1

Kevin Bowersox
Kevin Bowersox

Reputation: 94499

An easy way to escape the quotes is to use the javascript escape function.

http://www.w3schools.com/jsref/jsref_escape.asp

Upvotes: 1

Related Questions