JavaScript - How escape quotes in a var to pass data through Json
I'm passing some data through Json to a Webservice. My problem is that i'm passing html (from a tinyMCE input), so the var has content using quotes and that's giving me problems. I'm passing the values like this:
data: '{ id: "' + news_id + '", title: "' + news_title + '", body: "' + news_body + '" }',
开发者_C百科
Is there anyway to espace quotes in javascript, so i can send html in that news_body var?
Thanks
Use the replace() method:
function esc_quot(text)
{
return text.replace("\"", "\\\"");
}
data: '{ id: "' + esc_quot(news_id) + '", title: "' + esc_quot(news_title) + '", body: "' + esc_quot(news_body) + '" }',
Rather than using one-off code, go with a Javascript JSON encoder (such as provided by MooTools' JSON utility or JSON.js), which will take care of encoding for you. The big browsers (IE8, FF 3.5+, Opera 10.5+, Safari & Chrome) support JSON encoding and decoding natively via a JSON object. A well-written JSON library will rely on native JSON capabilities when present, and provide an implementation when not. The YUI JSON library is one that does this.
data: JSON.stringify({
id: news_id,
title: news_title,
body: news_body
}),
Use the function below:
function addslashes (str) {
return (str+'').replace(/[\\"']/g, '\\$&').replace(/\u0000/g, '\\0');
}
For example:
data: '{ id: "' + addslashes(news_id) + '", title: "' + addslashes(news_title) + '", body: "' + addslashes(news_body) + '" }',
A lot of functions like this can be found at http://phpjs.org/functions/index
if you are familiar with PHP that you can use some PHP based function form
phpjs.org
They made javascript function worked as PHP library functions. You can use addslashes function from here.
精彩评论