【发布时间】:2013-10-11 17:34:44
【问题描述】:
这种情况还没有问题。 我不想检测字符串是否包含任何链接,即 http、ftp、https 和 www. 等的所有组合
基本上我想阻止一个字符串包含 any 链接。
我目前使用:
name.split(/\s+/).find_all { |u| u =~ /^https?:/ }).count
防止字符串中的任何链接的最佳方法是什么?
【问题讨论】:
-
您是在谈论 HTML 链接(一个标签)还是只是一个 URL 字符串?
-
通过分割空格,然后搜索,你没有利用正则表达式的力量。这更好:
fail if name =~ /\bhttps?:/,尽管这不会捕获所有链接案例。我知道您的要求是什么——“www.example.com”算不算? “example.com”怎么样?如果是这样,那就没有希望了,因为那里有太多的域,维护将是一场噩梦 -
您可以使用正则表达式来做到这一点,但如果您的目标是阻止用户显示此类链接,他们将总是找到一种方法来规避那。喜欢: h t t p : // s t a c k o v e r f l o w 。 c o m
-
另外,stackoverflow.com/questions/700163/… 的可能副本
-
@m_x 是的,我的目标是防止用户提交内容中的任何链接。我能做到的最好的
标签: ruby-on-rails regex string url detect