我創建了一個功能來做到這一點。如何像XML文本解析爲JavaScript對象
var text="adsf [name]Victor[/name] dummytext [name]Elliot[/name] asdf [name]Jake[/name] asdf [foo]bar[/foo]";
alert(readTags(text,'name')); //Victor,Elliot,Jake
alert(readTags(text,'foo')); //bar
,但現在我想實現的是收到這樣
[person]
[name]jake[/name]
[age]12[/age]
[/person]
一個字符串的函數,返回這樣
var object={};
object['person']={};
object['name']='jake';
object['age']='12';
return(object);
一個對象,但我不知道如何循環通過文本。如何處理開始和結束標籤? 像
[tag] [tag]value[/tag] [/tag]
我想用indexOf('[tag]')
和lastindexOf('[/tag]')
找到從從右到左和結束標記開始標記,但在這種情況下不工作
[tag]value[/tag] [tag]value[/tag]
這是以前的功能
function readTags(str,property){
var beginTag='['+property+']';
var endTag='[/'+property+']';
var values=new Array(0);
while(str.indexOf(beginTag)!=-1){
values[values.length]=strBetween(str,beginTag,endTag);
str=str.substring(str.indexOf(endTag)+endTag.length);
}
return(values);
}
function strBetween(string,strBegin,strEnd){ //StrBetween("abcdef","b","e") //return "cd"
var posBegin, posEnd;
posBegin=string.indexOf(strBegin);
string=string.substring(posBegin + strBegin.length);
posEnd=string.indexOf(strEnd);
string=string.substring(0,posEnd);
if ((posBegin==-1)||(posEnd==-1)){
return(null);
}else{
return(string);
}
}
不要這樣做。改用[JSON](http://json.org/)。 – PointedEars
你爲什麼不使用JSON? – wannik
@PointedEars我使用博客託管可以通過這樣的機器人被抓取的內容,幾乎都添加垃圾桶JSON或不允許XML或<>標籤 –