2014-01-30 151 views
2

轉換的www所有出現在字符串http://www我已經試過文本轉換網址鏈接到可點擊的鏈接

正則表達式:/^www(?!http\:\/\/|https\:\/\/)./g;但它在工作的情況下,只有當任何字符或數字不先WWW。例如:Find me at www.test.com在這種情況下,它失敗,但它的工作爲www.google.com find me on this。我不知道如何把這個條件放在正常的exp中。

function mailify(text) 
{ 
    var regEx = /^www(?!http\:\/\/|https\:\/\/)/g; 
    return text.replace(regEx, "http://www"); 
} 

console.log(mailify("[email protected]")); 

回答

0

NISHANT這是有益的:

function mailify(text) 
    { 
     var regEx = /www/g; 
     return text.replace(regEx, "http://www"); 
    } 

    console.log(mailify("www.google.com find me on this")); 
+0

親愛的它也會將http:// www替換成http:// http:// http:www –

0

放置WWW之前先行:

var regEx = /^(?!https?:\/\/)www/; 
1

你可以這樣做:

return text.replace("www", "http://www"); 
+0

嘿你註冊前無法檢查:console.log(「 COM「));它正在取代http://[email protected]雖然它應該是好的ksajd kajsl d http://[email protected] –

+0

誤讀,我認爲這是提取。但如果只是文本到文本的替換,你可以使用兩個字符串。 –

+0

@Nishant更新 –

0

您可以使用下面的正則表達式:

/([^/]|^)(www)/g 

代碼:

var reg=/([^/]|^)(www)/g 
var line="something www.some.com , http://some1.com" 
console.log(line.replace(reg,"$1http://$2")) 

OUTPUT:

"something http://www.some.com , http://some1.com" 

Demo

說明:

enter image description here

+0

您的reg ex對console.log失敗(mailify( 「fine ksajd kajsl d http://[email protected]」));這裏的輸出結果是:fine ksajd kajsl d http:// http://[email protected] –

+0

@Nishant:我更新了答案。 –

+0

您的代碼失敗:「niasodjhttp:// www.niosjado sdjfklsjdl f www.test.com www.machine,com」 –

0

你可以試試這個:

function mailify(text) 
    { 
     var regEx = /\b(https?:\/\/)?www\./g; 
     return text.replace(regEx, 'http://www.'); 
    } 

    console.log(mailify('www.yourlink.com notalinkwww.yourlink.com http://www.yourlink.comm')); 

您還需要檢查'www'後面是否有一個點,以確保它標記鏈接的開始。

如果你只是想的鏈接,可以點擊,你必須這樣做:

function mailify(text) 
{ 
    var regEx = /\b((https?:\/\/)?www\.\S*)/g; 
    return text.replace(regEx, '<a href="$1">$1</a>'); 
} 
+0

您的註冊前無法使用:gmailify(「fine ksajd kajsl d sadasdsadwww.googl.com」) –

+0

也適用於:「fine ksajd kajsl d sadasdsad www.googl.com dfgdfg」 –

+0

sadasdsadwww.googl。 com不是一個鏈接,如果你想要這個匹配,在開始時刪除\ b。另外,請嘗試gmailify('YourString')而不是gmailify(「YourString」) – Andy

0

替換爲任何文本http://httpsftpfile或僅wwwhttp://wwwhttps://www和後跟任何字符數字和特殊字符,甚至退回到可點擊的鏈接。

註冊例: /(\b((https?|ftp|file):\/\/|(www))[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|]*)/ig

function UriphiMe(text) { 
     var exp = /(\b((https?|ftp|file):\/\/|(www))[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|]*)/ig; 
     return text.replace(exp,"<a href='$1'>$1</a>"); 
} 

我已經通過下面的字符串測試:

  1. 我找上www.google.com
  2. WWW
  3. 查找我到www。 http://www.com
  4. 跟隨我的:http://www.nishantwork.wordpress.com
  5. http://www.nishantwork.wordpress.com
  6. 跟隨我的:http://www.nishantwork.wordpress.com
  7. https://stackoverflow.com/users/430803/nishant

注意:如果你不想通過www爲有效一位剛剛使用下面REG前: /(\b((https?|ftp|file):\/\/|(www))[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/ig

參考:How to replace plain URLs with links?

如果reg ex失敗,請添加註釋,如果我錯了,請告訴我。