AS3 - 从文本中获取标签

时间:2012-03-19 13:12:15

标签: actionscript-3 flash

如何使用文本末尾的哈希(#示例#FOO #hello_world#foo-bar#2012)来跟踪标记,而不是文本中的哈希?

  

Lorem ipsum dolor http://www.example.com/#about consetetur #sit_amet,consetetur sadipscing,sed #diamnonumy eirmod tempor #invidunt ut labore #Example #FOO #hello_world#foo-bar#2012

感谢。乌利

3 个答案:

答案 0 :(得分:0)

算法应该是这样的:

  1. 从行尾开始阅读
  2. 读一个字(检查空格以获得一个字)
  3. 检查“#”作为该词的第一个字符
  4. 如果是,请将其推送到您的哈希标记列表,转到步骤2
  5. 否则,退出

答案 1 :(得分:0)

这与sub_stantial的方法非常相似,尽管我总觉得,最好是使用数组进行操作:

function returnEndHashtags(message:String):Array
{
    var lastHashtagIndex:int;
    var words:Array = message.split(" ");
    var l:int = words.length;

    for (var i = l-1; i > -1; i--)
    {
        if (!(words[i].toString().charAt(0) == "#"))
        {
            lastHashtagIndex = i + 1;
            break;
        }
    }

    return words.slice(lastHashtagIndex);
}
  1. 从文字中创建一个单词数组。
  2. 从数组的末尾迭代,找到以“#”开头的最后一个单词。
  3. 将从“#”开头的最后一个单词中的单词数组返回到数组末尾。
  4. 让我们希望向导出现并讲述如何使用正则表达式。

答案 2 :(得分:0)

使用此正则表达式查找末尾标记为字词的列表:

/(\s?#([\w-])+)+$/g

然后使用它来查找其中的所有标签:

/#[\w-]+/g

与往常一样,请参阅docs了解有关如何使用正则表达式的详细信息以及用于快速和脏测试的优秀RegExr