8

javascriptを使用して文字列にURLが含まれているかどうかを確認したいGoogleからこのコードを取得しました

        if(new RegExp("[a-zA-Z\d]+://(\w+:\w+@)?([a-zA-Z\d.-]+\.[A-Za-z]{2,4})(:\d+)?(/.*)?").test(status_text)) {
          alert("url inside");
        }

ただし、これは「http://www.google.com」「http://google.com」などのURLでのみ機能しますが、「www.google.com」では機能しません。また、そのURLを抽出したいと思います。文字列から、そのURLを処理できるようにします。

4

5 に答える 5

21

試す:

if(new RegExp("([a-zA-Z0-9]+://)?([a-zA-Z0-9_]+:[a-zA-Z0-9_]+@)?([a-zA-Z0-9.-]+\\.[A-Za-z]{2,4})(:[0-9]+)?(/.*)?").test(status_text)) {
        alert("url inside");
}
于 2012-05-13T08:44:57.600 に答える
3

Sudhirの答え(私にとって)は、URLの終わりを超えて一致します。

これは、URLの終わりを超えて一致するのを防ぐための私の正規表現です。

var str = " some text http://www.loopdeloop.org/index.html aussie bi-monthly animation challenge site."
var urlRE= new RegExp("([a-zA-Z0-9]+://)?([a-zA-Z0-9_]+:[a-zA-Z0-9_]+@)?([a-zA-Z0-9.-]+\\.[A-Za-z]{2,4})(:[0-9]+)?([^ ])+");
str.match(urlRE)

node.jsを使用してこの出力を生成しました:

[ 'http://www.loopdeloop.org/index.html',
'http://',
 undefined,
'www.loopdeloop.org',
 undefined,
'l',
index: 11,
input: ' some text http://www.loopdeloop.org/index.html aussie bi-monthly animation challenge site.' ]
于 2014-10-13T16:54:57.443 に答える
1

次のように、URLのスキームに条件付きで一致するように正規表現を変更できます。

var urlCheck = new RegExp('([a-zA-Z\d]+://)?(\w+:\w+@)?([a-zA-Z\d.-]+\.[A-Za-z]{2,4})(:\d+)?(/.*)?', 'i')
if (urlCheck.test(status_text) {
    console.log(urlCheck.exec(status_text));
}
于 2012-05-13T08:44:44.093 に答える
0
var reg = new RegExp('([a-zA-Z\d]+://)?((\w+:\w+@)?([a-zA-Z\d.-]+\.[A-Za-z]{2,4})(:\d+)?(/.*)?)', 'i')
if (reg.test(status_text)) {
    alert(reg.exec(status_text)[2]);
}
于 2012-05-13T08:54:23.423 に答える
0

これを試してみてください

(?<http>(http:[/][/]|www.)([a-z]|[A-Z]|[0-9]|[/.]|[~])*)
于 2012-05-13T08:40:56.367 に答える