Это идеальная работа для регулярного выражения.
var myPattern:RegExp = /\[video\]([a-zA-Z0-9_-]+)\[\/video\]/g;
Скобки [ ]
и косая черта /
являются зарезервированными символами, поэтому их необходимо экранировать обратной косой чертой. [a-zA-Z0-9_-]
- это диапазон символов, которые могут быть в действительном идентификаторе YouTube.
Чтобы использовать регулярное выражение, вы идете так:
var str:String = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. \n[video]AAAAAAAAAAA[/video]\nDonec commodo condimentum enim, vitae consectetur felis pharetra a.";
var result:Object = myPattern.exec(str);
while (result != null) {
trace( "id is: " + result[0] + " at index: " + result.index);
result = myPattern.exec(str);
}
Вы также можете сжать тот же код в меньшее количество строк, поместив выражение в качестве условия while:
var result:Object;
while (result == myPattern.exec(str)) {
trace( "id is: " + result[0] + " at index: " + result.index);
}
Это функционально эквивалентно, но может быть немного сложнее понять.
Теперь у вас есть индекс и идентификатор, все, что осталось, это разделить текст и вставить видео!