开发者

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.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜