2013-03-20 2 views
3

Мне нужно написать функцию, как это:экстракт строки внутри атрибута

var width=getWidth($(this).attr("ows_MetaInfo")); 

где $ это указывает на XML-строки.

в функции getWidth(meta){} Мне нужно найти текст vti_lastheight и сделать несколько разделов и прочее и получить числовое значение высоты, равное 250. Как это сделать в javascript или jquery ??

<z:row ows_Title='We are together!' ows_ImageSize='620' 
      ows_MetaInfo='16;#vti_parserversion:SR|14.0.0.6120&#13;&#10;     
      vti_lastheight:IW|250&#13;&#10;vti_lastwidth:IW|620&#13;&#10; 
      vti_description:SW|Lorem ipsum dolor sit volutpat.' /> 

Обновление: Я обнаружил, что кто-то написал функцию, чтобы захватить значение описания из vti_description. Может кто-нибудь объяснить мне, как эта функция может извлечь описание Portio текста «Lorem Ipsum» части и как я могу использовать его, чтобы извлечь lastheight значение? Пожалуйста?

function getDescription(metaInfo) 
    { 
     var description=""; 
     if(metaInfo!=null) 
     { 
      metaParts=metaInfo.split("\n"); 
      if(metaParts!=null && metaParts.length>0) 
      { 
       var i=0; 
       do 
       { 
        if(metaParts[i].indexOf("vti_description")>-1) 
        { 
         var descParts=metaParts[i].split("|"); 
         if(descParts!=null && descParts.length>1) 
         { 
          description=descParts[1]; 
         } 
        } 
        i++; 
       } while (i<metaParts.length && description==""); 
      } 
     } 
     return description; 
    } 
+0

Я вижу 620 как значение атрибута 'ows_ImageSize'; ты не можешь просто получить его оттуда? Кроме того, по какой-либо причине вы не используете атрибуты 'data-' и ['.data()' jquery api] (http://api.jquery.com/data/)? –

+0

ширина и высота скрыты как vti_lastheight: IW | 250 vti_lastwidth: IW | 620 – Athapali

ответ

1

Я считаю, что вы должны использовать регулярное выражение.

function getWidth(str) { 
    str = str.replace(/(\r\n|\n|\r)/gm, ""); 
    str = str.match(/vti_lastwidth:(.*?(?=vti))/); 
    str = parseInt(str[1].split('|')[1]); 
    console.log(str); 
    return str;; 
} 

Предположим, что ваши данные всегда будут иметь такое образование.

DEMO: http://jsfiddle.net/pavloschris/3gdd5/

С несовершеннолетней подстройкой вы можете использовать эту функцию для любого атрибута.

+0

Большое вам спасибо! – Athapali

+0

Я пытаюсь сделать что-то подобное по свойству URL-адреса строки, и это не сработает, можете ли вы мне помочь? Я просто хочу получить значение URL после строки | и до ", Wheat Husk" http://jsfiddle.net/6cJQZ/1/ – Athapali

+0

@SarikaThapaliya Я сделал правильное решение здесь http://jsfiddle.net/pavloschris/6cJQZ/13/. Также я заметил, что был мой недостаток, поэтому я тоже его изменил. – xpy

0

getWidth является функцией. Вам не нужна функция для этого просто:

var width=$(this).attr("ows_MetaInfo"); 

ows_ImageSize является атр этого XML-строки Так вызова выше, должны работать, и он будет возвращать все, что находится в ows_ImageSize в данном случае это 620. Так я. сначала проверит его, убедившись, что это возвращает число:

console.info(width); 

Если это так, вы узнаете, что часть работает, и вы можете заняться получением getWidth(meta){} для работы.

getWidth(width); 
+0

Прошу прощения, мне нужно было получить высоту не ширины. Получение ширины было легко, но мальчик не был частью высоты. – Athapali

+0

ха-ха, на самом деле его нет. Я обновлю –

Смежные вопросы