2017-01-30 14 views
-2

こんにちは私は、URLのクリーナーを構築しようとしています。http://またはhttp://とwwwを削除する

私は、URLのリストを取得し、末尾の/後最初だけでなく、すべてのテキストからすべてのhttps://http://www.などを取り除くために探しています。

私が試してみましたが、次の正規表現url.replace(/^https?\:\/\/www\./i, "").split('/')[0];

これがある程度動作し、以下のリストから次

"www.net-temps.com" 
"www.toplanguagejobs.com" 
"http:" 
"peopleready.com" 
"nationjob.com" 
"http:" 
"bluesteps.com" 
"https:" 
"theguardian.com" 
"reddit.com" 
"youtube.com" 
"https:" 
"pgatour.com" 
"cultofmac.com" 

を出力します

'www.net-temps.com', 
'www.toplanguagejobs.com', 
'http://nychires.com/', 
'http://www.peopleready.com/', 
'https://www.nationjob.com/', 
'http://nationaljobsonline.com/', 
'https://www.bluesteps.com/', 
'https://medium.freecodecamp.com/how-we-got-our-2-year-old-open-source-project-to-trend-on-github-8c25b0a6dfe9#.nl4985bjz', 
'https://www.theguardian.com/uk/business', 
'https://www.reddit.com/r/funny/comments/5qzkz4/my_captain_friend_sent_me_this_photo_saudi_prince/', 
'https://www.youtube.com/watch?v=Bua8k_CcnuI', 
'https://stackoverflow.com/questions/7000995/jquery-removing-part-of-string-after-and-removing-too/7001040#7001040', 
'http://www.pgatour.com/fantasy.html', 
'http://www.cultofmac.com/464645/apple-spaceship-campus-flyover/' 

私は/www\.から削除した場合この正規表現はうまく動作し、すべてhttps:などを削除しますが、私はwww. ifそれは、これは私がこれまでに

https://jsfiddle.net/xba5x9ro/1/

将来的にはこれがソートされると、コード化されたものであるにかかわらずhttps:

のがあります。私はテキストエリアからURLのリストを取ってmakeDomainBeautifulを実行し、別のテキストエリアに出力したいと思いますが、これが最初に動作すると思っていました。

/^(?:https?:\/\/)?(?:www\.)?/i
+0

、: 'プロトコル:// subdomain.domain.tld/PATH'あなただけ' domain.tld'一部を取得したいですか? –

+0

なぜ、 '' jQueryは "#"の後の文字列の一部を削除し、URLリストの "#"も削除していますか?期待される結果は何ですか? – guest271314

+0

私はその答えがおそらくこのトピックに関してすでに質問されている6,041件の結果の1つにあると確信しています。私はちょうど最高の結果を見つけるためにそれらの多くを読んでいない。 http://stackoverflow.com/search?q=remove+http%3A%2F%2F+www。 – Claies

答えて

7

両方https://www.はオプションであるべきである(?)および非捕捉基((?:...))。イブラヒムのmahrirの回答に基づいて

var url = prompt("url: "); 
 

 
url = url.replace(/^(?:https?:\/\/)?(?:www\.)?/i, "").split('/')[0]; 
 

 
alert("url: " + url);

+0

これは完璧で、ちょうど必要なものです。 – mrpbennett

0

、あなただけのURLの先頭からHTTPまたはHTTPSとWWWをトリミングするが、残りの部分を維持したい場合。それが動作するかどうかをテストするためにcodepenでそれを嘲笑した。うまく動作するようです。フォームのURLを与えられた明確にする https://codepen.io/pureth/pen/LQOaPz

var regex = /^(?:https?:\/\/)?(?:www\.)?/i; 
 
var urlList = [ 
 
    "www.net-temps.com", 
 
    "www.toplanguagejobs.com", 
 
    "http://nychires.com/", 
 
    "http://www.peopleready.com/", 
 
    "https://www.nationjob.com/", 
 
    "http://nationaljobsonline.com/", 
 
    "https://www.bluesteps.com/", 
 
    "https://medium.freecodecamp.com/how-we-got-our-2-year-old-open-source-project-to-trend-on-github-8c25b0a6dfe9#.nl4985bjz", 
 
    "https://www.theguardian.com/uk/business", 
 
    "https://www.reddit.com/r/funny/comments/5qzkz4/my_captain_friend_sent_me_this_photo_saudi_prince/", 
 
    "https://www.youtube.com/watch?v=Bua8k_CcnuI", 
 
    "https://stackoverflow.com/questions/7000995/jquery-removing-part-of-string-after-and-removing-too/7001040#7001040", 
 
    "http://www.pgatour.com/fantasy.html", 
 
    "http://www.cultofmac.com/464645/apple-spaceship-campus-flyover/" 
 
]; 
 

 
urlList.forEach(function(url) { 
 
    let $originalEl = $("<div class='url'>" + url + "</div>"), 
 
    cleanUrl = url.replace(regex, ""), 
 
    $cleanEl = $("<div class='url'>" + cleanUrl + "</div>"); 
 
    $(".original").append($originalEl); 
 
    $(".clean").append($cleanEl); 
 
});
.original, .clean { 
 
    background-color: grey; 
 
    width: 25%; 
 
    max-width: 350px; 
 
    float: left; 
 
} 
 
.title { 
 
    color: white; 
 
    text-align: center; 
 
    padding-top: 3px; 
 
} 
 
.url { 
 
    background-color: lightgrey; 
 
    margin: 5px; 
 
    word-wrap:break-word; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="original"> 
 
    <div class="title"><b>original</b></div> 
 
</div> 
 
<div class="clean"> 
 
    <div class="title"><b>clean</b></div> 
 
</div>

関連する問題