2014-10-21 4 views
3

У меня есть страница со следующим DIVзаменить часть значения атрибута

<div class="info" attribute-one="value one" attribute-two="value two" json="see below"></div> 

Атрибут «JSON» заполнена сжатым JSON строки, подобной

{ 
    "serviceContext": "\/", 
    "state": "READY", 
    "url": "http://domain.com/some-url.extension", 
    "zoomedPageWidth": 768, 
    "hits": [ 

    ], 
    "httpContentLoaded": 0, 
    "resource": "\/session\/zc7d2c08-90d8-4b2d-97f8-a455b28c4e7d\/", 
    "httpContentLength": 660032 
} 

Теперь я хочу, чтобы заменить параметр ресурса в строке JSON, из:

"resource": "\/session\/bc7d2c28-90d9-4b2d-97f8-a455b28c4e7d\/", 

в

"resource": "http:\/\/domain.com\/page\/session\/bc7d2c28-90d9-4b2d-97f8-a455b28c4e7d\/", 

Но я не знаю, как это сделать с помощью регулярных выражений в JavaScript. Кто-нибудь достаточно, чтобы помочь мне с этим?

ответ

4

Что я бы сделать, это пропустить регулярное выражение, и разобрать, как JSON:

var jsonObject = JSON.parse(theJsonString); 
jsonObject.resource = "http://domain.com/page" + jsonObject.resource; 
theJsonString = JSON.stringify(jsonObject); 

Это до вас, чтобы положить theJsonString в элемент.

+0

Я вывесил бы тот же ответ: D – Benedictus

0

Вы можете Yse некоторые JQuery и JOSN функции

Take a look at this fiddle

HTML:

<div id="test" json='{"serviceContext": "\/", "state": "READY","url": "http://domain.com/some-url.extension","zoomedPageWidth": 768,"hits": [],"httpContentLoaded": 0,"resource":"\/session\/zc7d2c08-90d8-4b2d-97f8-a455b28c4e7d\/","httpContentLength": 660032}'></div> 

и JS:

var testElement = $('#test'), 
    a = testElement.attr('json'); 
    o = JSON.parse(a); 

o.resource = 'http://domain.com/page/session' + o.resource; 
testElement.attr('json', JSON.stringify(o)); 
Смежные вопросы