我有一個可以包含標籤,例如:AS3字符串分割保持標籤
"<b>Water</b>=H<sub>2</sub>O"
我要的是一個數組應該是一個變量字符串:
Array[0] <b>Water</b>
Array[1] =H
Array[2] <sub>2</sub>
Array[3] O
我怎麼能這樣做呢?
謝謝!
我有一個可以包含標籤,例如:AS3字符串分割保持標籤
"<b>Water</b>=H<sub>2</sub>O"
我要的是一個數組應該是一個變量字符串:
Array[0] <b>Water</b>
Array[1] =H
Array[2] <sub>2</sub>
Array[3] O
我怎麼能這樣做呢?
謝謝!
給它一個去,它使用一個普通的正則表達式來查找html標籤,以獲得它的分離,然後indexOf和substring將它組裝在一起。
function splitWithTags(str:String):Array {
var tags:Array = str.match(/(<(.|\n)*?>)/g);
var c:int = tags.length;
if(c%2 != 0) c--; // if it's odd, decrement to make even so loop works, last tag will be ignored.
if(c<2) return [str]; // not enough tags so return full string
var out:Array = [];
var end:int = 0;
var pos1:int, pos2:int;
for(var i:int = 0; i<c; i+=2) {
// find position of 2 tags.
pos1 = str.indexOf(tags[i]);
pos2 = str.indexOf(tags[i+1]);
if(pos1 >= end+1) { // there's some stuff not between tags to add
out.push(str.substring(end, pos1));
}
end = pos2+tags[i+1].length
out.push(str.substring(pos1, end));
}
if(end < str.length) { // there is substr at end
out.push(str.substring(end, str.length));
}
return out;
}
會試試這個,非常感謝。 – user3123207
嘿@ user3123207這是怎麼回事?如果你可以將這個問題標記爲回答,如果它適合你,那將是一件好事。這是堆棧溢出的工作原理:http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work – adamh
http://php.net/dom –
謝謝,但我不明白這可以如何幫助我與AS3。 – user3123207
@ user3123207有一個叫做split()的函數。 – Cilan