3 回答

TA貢獻(xiàn)1895條經(jīng)驗(yàn) 獲得超7個(gè)贊
我建議您在呈現(xiàn)給瀏覽器之前在靜態(tài)頁(yè)面上執(zhí)行此操作,否則您會(huì)將轉(zhuǎn)換計(jì)算的負(fù)擔(dān)推給可憐的訪問(wèn)者。:)這是在Ruby中的方法(從stdin讀取,寫入stdout):
while line = gets
puts line.gsub( /(^|[^"'])(http\S+)/, "\\1<a href='\\2'>\\2</a>" )
end
顯然,您需要考慮如何使它像您期望的那樣健壯。以上要求所有URL以http開(kāi)頭,并且將檢查是否不轉(zhuǎn)換帶引號(hào)的URL(即可能已經(jīng)在<a href="...">內(nèi)的URL)。它不會(huì)捕獲ftp://,mailto:。它將很高興在諸如<script>正文之類的地方轉(zhuǎn)換材質(zhì),您可能不想發(fā)生這種情況。
最令人滿意的解決方案實(shí)際上是與編輯器手動(dòng)進(jìn)行轉(zhuǎn)換,以便您可以接受并批準(zhǔn)所有替換。 好的編輯器可以讓您使用組引用(也稱為反向引用)進(jìn)行正則表達(dá)式替換,因此這沒(méi)什么大不了的。
添加回答
舉報(bào)