我正在研究 Rails 并尝试编写类似 Twitter 的应用程序。
有没有一种简单的方法可以突出以 开头的主题标签和以 开头的#
用户名@
,并从中制作 URL?
我找不到合适的宝石。还是我应该自己做?
我正在研究 Rails 并尝试编写类似 Twitter 的应用程序。
有没有一种简单的方法可以突出以 开头的主题标签和以 开头的#
用户名@
,并从中制作 URL?
我找不到合适的宝石。还是我应该自己做?
您可以使用 Ruby 的String#scan方法在推文中查找所有匹配的表达式。例如:
str = 'Foo #bar! Baz @quux. #foobar1'
hashtags = str.scan /#[_\p{Alpha}][\p{Alnum}_]+/
#=> ["#bar", "#foobar1"]
users = str.scan /(?<=[\A\s\\.])@[_\p{Alnum}][^\p{Punct}\p{Blank}]{,14}/
#=> ["@quux"]
这将捕获大多数有效的用户名和主题标签,但可能存在预期结果模棱两可的极端情况(即未提及\@foo
,或奇怪但有效的电子邮件,如foo.@example.com
)。在这种情况下,您将需要调整正则表达式或对结果执行一些额外的验证。你的旅费可能会改变。
更多细节会有所帮助。
你可以用正则表达式捕捉它们。
学习正则表达式。他们值得你花时间。
http://www.ruby-doc.org/docs/ProgrammingRuby/html/language.html#UJ
您没有用 HTML 标记它,但这听起来像是您所要求的一个重要方面。