我有一个正则表达式验证 url
/(^$|^(https?:\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?$)/
虽然我知道这在某种意义上是不正确的,例如它不允许使用井号,而不是抛出验证错误,它只是让应用程序崩溃。它似乎也使一个独立的正则表达式测试器崩溃。
谁能解释为什么?
代码上下文是在模型中使用的,用于验证用户输入的要呈现到页面上的 URL
validates :source_link, :format => { :with => /(^$|^(https?:\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?$)/,
:message => 'Only valid urls allowed' }, :if => :apply_validations?