0
我想用正則表達式來替換圖像,視頻和其他網址來作爲消息。我認爲一切正常,但最近一次更換像www.google.com這樣的網址時遇到了問題。它現在將localhost:3000添加到這些網址的前面。我不是最好的正則表達式,但它看起來像正則表達式工作在HTML中,因爲href是www.google.com。任何人都可以幫助看到哪裏出錯?Javascript正則表達式url替換
var image_url = /([a-z\-_0-9\/\:\.]*\.(jpg|jpeg|png|gif))/i;
var message = text.replace(image_url,'<a href="$1" target="_blank"><img width=100px height=100px src="$1"/></a>')
var video_url = /([a-z\-_0-9\/\:\.]*\.(mp4|webm|ogg))/i;
message = message.replace(video_url,'<a href="$1" target="_blank"><video src="$1"></video></a>')
var exp_url = /(?:^|[^"'])(https?:\/\/(?:www\.|(?!www))[^\s\.]+\.[^\s]{2,}|www\.[^\s]+\.[^\s]{2,})/gi;
message = message.replace(exp_url,'<a href="$1" target="_blank">$1</a>')
不完全理解問題......你可以多發一些代碼嗎?特別是'文本'變量的價值是什麼? –
文本是由用戶發送的消息,因此它可以是任何內容。此功能的作用是檢查它是否是圖像,視頻或網址,並用正確的標記替換它。前兩個似乎工作正常,但最後一個想要添加localhost:3000到它的前面 –
如果問題只與最後一個,你可以減少問題,只有?看起來沒有必要我們看看正在工作的代碼部分。 – trincot