2013-10-24 6 views
1

У меня есть этот простой переменныестроки фильтра и возвращаемые значения

var string = 'this is string id="textID" name="textName" title="textTitle" value="textVal"'; 
var id, name, title, value; 

Мне нужно фильтровать var string и получить значения этих переменных id, name, title, value
Как сделать это?

+4

Каковы были ваши попытки? 'Вопросы, требующие кода, должны продемонстрировать минимальное понимание проблемы, которая будет решена. – ComFreek

+0

Я не знаю, какую функцию я должен использовать. –

+0

Возможно, вы захотите использовать регулярные выражения, посмотрите на https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions –

ответ

2

Я использовал эту функцию, так как все ваши атрибуты имеют ту же форму, что это работает:

// 
// inputs: 
// strText: target string 
// strTag: tag to search, can be id, name, value, title, ... 
// 
function getTagValue(strText, strTag) 
{ 
    var i, j, loffset = strTag.length + 2; 
    i = strText.indexOf(strTag + '="', 0); 
    if(i >= 0) 
    { 
    j = strText.indexOf('"', i + loffset); 
    if(j > i) 
    { 
     return strText.substring(i + loffset, j); 
    } 
    } 
    return ""; 
} 

// 
// main: 
// 
var string = 'this is string id="textID" name="textName" title="textTitle" value="textVal"'; 
var id, name, title, value; 
console.log(string); 

id = getTagValue(string, "id"); 
console.log(id); 

name = getTagValue(string, "name"); 
console.log(name); 

title = getTagValue(string, "title"); 
console.log(title); 

value = getTagValue(string, "value"); 
console.log(value); 
1

Вы можете получить значения по их индексам. Как я сделал ниже:

var stringValue = 'this is string id="textID" name="textName" title="textTitle" value="textVal"'; 


var indexOfID=stringValue.indexOf('id'); // find the index of ID 

var indexOfEndQuoteID=stringValue.indexOf('"',(indexOfID+4)); // find the index of end quote 

var ID=stringValue.substring((indexOfID+4),(indexOfEndQuoteID)); // fetch the string between them using substring 

alert(ID); // alert out the ID 

Аналогичным образом вы можете сделать и другие элементы. Надеюсь это поможет..!

+0

приятно, но что означает '+ 4' в' indexOfID + 4'? –

+0

, поскольку вам нужно получить конечную цитату, которую вам нужно пропустить первым. IndexOfID + 4 сообщит indexOf(), чтобы начать поиск цитаты после первой цитаты. Вы меня поймали? вы можете сослаться на этот http://www.w3schools.com/jsref/jsref_indexof_array.asp – writeToBhuwan

+0

Поскольку индекс будет выведен на «i» «id» .. вам придется пропустить d = «(три символа) – writeToBhuwan

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