テキストからURLを抽出したいです。
strを与えたら
js
1str = 'あああhttps://example.com/xxxあああhttps://example.net/yyy/zzz';
以下がほしいという感じで挑戦しています。
js
1[ 2 'https://example.com/xxx', 3 'https://example.net/yyy/zzz' 4];
まずネットで以下の正規表現を見つけたのですが、
js
1const reg = /(https?:/((?!\Whttps?:)(/(\w|.)+))+/?)/g;
これではハイフンがあると途切れてしまいまして、
調べるとURL向けの [\x21-\x7e] という正規表現があったのでそれを使って下記のようにしてみたのですが、
js
1function spliturl(str){ 2 str = decodeURI(str); 3 const reg = /(https?:/((?!\Whttps?:)(/[\x21-\x7e]+))+/?)/g; 4 let matches = new Array(); 5 while ((match = reg.exec(str))!== null) { 6 matches.push(match[1]); 7 } 8 return matches; 9}
これですと、以下のstrのように連続したURLに対応できませんでした。
js
1str = 'あああhttps://example.com/xxxhttps://example.net/yyy/zzz';
そこでタイトルにあるように「連続したURLを検出したい」となりました。またその問題点がございましたら教えて頂けませんでしょうか。宜しくお願い致します。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/02/26 23:53 編集
2020/02/27 00:54
2020/02/27 02:00
2020/02/27 02:01