2017-05-05 29 views
2

我有正則表達式/[[email protected]:%._\+~#=]{2,256}\.[a-z]{2,6}\b([[email protected]:%_\+.~#?&\\=]*)/g用於檢查有效的URL。但它接受:如何使用JS/jQUERY正則表達式刪除不匹配的部分

https://www.google.com 
google.com 
https://google.com 
dev.google.com 

那我沒意見,但我想,當用戶輸入這些值濾波值將是google.com我必須通過AJAX但投入將是UI部分相同的(指瀏覽器)。我知道這是可能的,但我不能。

任何引用將是有益的
預先感謝

+0

所以,你想要的域名,並且也改變爲具有 「.COM」 即使是「.CO」? – binariedMe

+0

@binariedMe對不起我的錯誤。我已更新。 :)我只想要域名部分'google.com' –

+0

我已經添加了一個正則表達式來測試你的req – binariedMe

回答

1

嘗試

var regExp = /\w+\.\w+(?=$|\/)/; 
 
var matches1 = regExp.exec("https://www.google.com/images"); 
 
var matches2 = regExp.exec("google.com"); 
 
var matches3 = regExp.exec("https://google.com"); 
 
var matches4 = regExp.exec("dev.google.com"); 
 

 

 
//matches1[0] contains the value between the parentheses 
 
console.log(matches1[0]); 
 
console.log(matches2[0]); 
 
console.log(matches3[0]); 
 
console.log(matches4[0]);

所有上述會給你 'google.com'

+0

Thanx。它工作並節省我的時間。 –

+0

您從以前的答案複製了確切的解決方案。 – revo

+0

@revo,據我所知,問題是要從輸入中獲得過濾文本,所以我盡我所能分享了一個可能有所幫助的完整解決方案。沒有什麼可以「複製」,正則表達式不是祕密權;) – Sinha

0

嘗試以下正EXP。 :

var a = /(\w*\.\w*)$|(\w*\.\w*)(\/)/; 

說明:

的第一部分或檢查的XY 第二部分或爲XY檢查的最後一次出現「/」關鍵字開始前右

0

檢查或者匹配部分應在URL的結尾或任何路徑,片段或查詢字符串之前:

\w+\.\w+(?=$|[\/?#]) 

Live demo

相關問題