我意识到它被拉进了一个独立的宝石,但是原因是什么?这只是简化Rails的问题,还是有一些原因我应该厌倦了auto_link?
(宝石表示它意味着"弥合人们迁移的差距",这告诉我,如果我将rails_autolink引入新项目,我必须做错事,不是吗?)
谢谢,
有一些关于使用正则表达式链接文本的帖子.最受欢迎的是这篇文章.
不过我的规格有点棘手:
describe TextFormatter do
def l(input)
TextFormatter.gsub_links!(input){|link| "!!#{link}!!"}
end
it "should detect simple links" do
l("http://www.cnn.com").should == "!!http://www.cnn.com!!"
end
it "should detect multi links" do
l("http://www.cnn.com http://boats.com?help.asp").should == "!!http://www.cnn.com!! !!http://boats.com?help.asp!!"
end
it "should compensate for parans properly" do
l("(http://this.is?hello_world)").should == "(!!http://this.is?hello_world!!)"
end
it "should ignore existing links" do
s = "<A HREF='http://sam.com'> http://sam.com </A>"
l(s.dup).should == s
end
it "should allow parans" do
l("http://sam.com.au?(red)").should == "!!http://sam.com.au?(red)!!"
end
end
Run Code Online (Sandbox Code Playgroud)
任何想法如何实现毛茸茸的正则表达式:
这是我到目前为止的地方(它未通过2次测试):
def gsub_links!(input)
regex = /https?\:\/\/[\-\w+&@#\/%?=~\(\)\|!:,.;]*[\-\w+&@#\/%=~_\(\)|]/
input.gsub!(regex) { …
Run Code Online (Sandbox Code Playgroud)