KRL:截断一个字符串

时间:2011-01-19 23:17:01

标签: krl

我正在从Tumblr博客中提取RSS源。与WordPress不同,后者在<description>标签中提供帖子的精简版本,Tumblr将整个帖子转储到Feed中,根本没有缩短版本。我希望我的Kynetx应用程序只输出第一个,比如400个字符,如果帖子的长度超过那个。

我可以发出一些JavaScript来做,像这样:

if (post.length > 400) {
  post = post.substring(0, 400);
}

有没有办法直接在KRL做类似的事情?

1 个答案:

答案 0 :(得分:1)

是的!您可以使用extract函数,该函数将返回正则表达式中的匹配数组。

Extract function documentation

truncated = originalString.extract(re/^.{100}/gi);

Example Appruleset a60x549 {
  meta {
    name "string-truncate-test"
    description <<
      string-truncate-test
    >>
    author "Mike Grace"
    logging on
  }

  rule testingerlyish {
    select when pageview ".*"
    pre {
      originalString = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam id purus quis urna aliquam volutpat. Nullam ut velit enim. Cras eu libero felis, vitae adipiscing dolor. Mauris metus nisi, facilisis vitae hendrerit a, posuere in nisi. Integer convallis, odio eu ultrices luctus, arcu ligula ultrices neque, sit amet aliquet lorem diam eget ipsum. Morbi ullamcorper feugiat urna sagittis volutpat. Nullam tincidunt gravida sem, vel suscipit quam cursus egestas. Etiam quis felis leo, id blandit metus. Vestibulum lacinia tortor sit amet mi consectetur non malesuada arcu hendrerit. In placerat mauris nec quam dictum eleifend. Suspendisse consectetur rutrum mauris id vestibulum. Vivamus dignissim imperdiet lorem sit amet eleifend.      Etiam nulla est, feugiat non accumsan egestas, luctus in nulla. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras orci libero, aliquet id ultricies id, tempor eu eros. Suspendisse ultricies enim quis dui malesuada condimentum. Sed in est velit, ac volutpat velit. Nunc aliquet commodo pellentesque. Curabitur egestas, nibh sed dapibus imperdiet, urna nisi ultricies justo, nec dictum nulla est vitae lectus. Morsapien purus tincidunt nulla, sit amet sodales nisi mi sit amet purus. In facilisis ligula vitae sapien aliquet condimentum. Integer lacus dolor, tincidunt dapibus consequat id, luctus et erat. Praesent vel nunc enim. Donec dignissim dui tincidunt lacus molestie in laoreet ligula placerat. Nullam elit magna, luctus sit amet vestibulum ut, dignissim eget elit. Pellentesque nunc massa, auctor sit amet venenatis sed, hendrerit eu nibh. Vestibulum in nisi purus, eget dictum velit. Phasellus pulvinar odio sed nulla egestas lacinia. Donec porttitor lobortis porta. Nullam imperdiet dapibus pulvinar. Sed ut quam tellus. Sed ornare vulputate facilisis. Suspendisse potenti. Nullam aliquet nulla id enim suscipit iaculis pellentesque lectus vulputate.  Cras ullamcorper nunc nec eros porta quis fermentum lectus mattis. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Maecenas ac imperdiet nisi. Morbi nec elit in eros varius luctus. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Pellentesque aliquet, elit et mattis dignissim, metus tortor fringilla mauris, fermentum bibendum metus mi et lorem. Ut at magna quam, ac condimentum ipsum. Aenean aliquam elementum nisl vitae tempus. Fusce molestie, metus nec egestas facilisis, velit turpis bibendum quam, nec blandit arcu leo non ligula. Morbi nisl neque, gravida in pulvinar ut, sollicitudin eu nunc. Phasellus eget sagittis nunc. Praesent nibh libero, lacinia placerat fermentum a, fringilla sit amet mi. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Sed odio dolor, dignissim a dictum ut, fringilla sit amet purus. Duis et justo et felis tempus pulvinar id eget odio. Suspendisse ac turpis sit amet orci laoreet cursus. Aliquam at odio quis massa pulvinar sollicitudin. Cras nec laoreet metus.      Mauris consectetur mauris sit amet nulla rutrum quis tristique erat placerat. Phasellus id felis enim, et molestie dolor. Maecenas dignissim faucibus augue vitae pulvinar. Pellentesque auctor massa eu massa sagittis rutrum. In varius dignissim odio, eu .";
      truncated = originalString.extract(re/^.{100}/gi);
    }
    {
      notify("Truncated",truncated[0]) with sticky = true;
    }
  }
}

示例app使用bookmarklet在example.com上运行: alt text