我想要檢測URL並在用戶鍵入textarea時用超鏈接替換它。我想測試字符串使用正則表達式的網址:正則表達式來檢測沒有http或www的URL
var text='gggg.com/gd/';
var exp = /(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/ig;
var text1=text.replace(exp, "<a href='$1'>$1</a>");
var exp2 =/(^|[^\/])(www\.[\S]+(\b|$))/gim;
var finalText=text1.replace(exp2, '$1<a target="_blank" href="http://$2">$2</a>');
alert(finalText);
它工作正常的與OT參數的URL沒有HTTP(S),但無法識別的網址不包含http和www例如abc.com或anc.com/fgdg/dgd或abc.com?lklkj=kjhkjh
更新
基於由epascarello和答案的評論通過Ali Khan:
var text='gggg.com?klk=efhjsk';
var exp2 = '^([a-zA-Z0-9]+(\.[a-zA-Z0-9]+)+.*)$';
var pattern1 = /^([a-zA-Z0-9]+(\.[a-zA-Z0-9]+)+.*)$/;
if(pattern1.test(text) && text.substr(0,3)!='www'){
var finalText = '<a href="'+text+'" target="_blank">'+text+'</a>';
}else{
var exp = /(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/ig;
var text1=text.replace(exp, "<a href='$1'>$1</a>");
var exp2 =/(^|[^\/])(www\.[\S]+(\b|$))/gim;
var finalText=text1.replace(exp2, '$1<a target="_blank" href="http://$2">$2</a>');
}
alert(finalText);
因爲你的正則表達式要求它在那裏,你需要使該部分有條件。 – epascarello
所以,我應該首先檢查模式abc.xyz,如果不是那麼剩下的模式? – gentrobot