Reputation: 4666
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
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
Reputation: 7354
You need to escape the quotation characters with \
:
var someString = 'escape all the quotation marks \"\'';
Upvotes: 13
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
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
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