0

この関数を使用して、文字列が URL であるかどうかを検出します。

function ValidUrl(str) {
    var pattern = new RegExp('^(https?:\\/\\/)?' + // protocol
    '((([a-z\\d]([a-z\\d-]*[a-z\\d])*)\\.)+[a-z]{2,}|' + // domain name
    '((\\d{1,3}\\.){3}\\d{1,3}))' + // OR ip (v4) address
    '(\\:\\d+)?(\\/[-a-z\\d%_.~+]*)*' + // port and path
    '(\\?[;&a-z\\d%_.~+=-]*)?' + // query string
    '(\\#[-a-z\\d_]*)?$', 'i'); // fragment locator
    if (!pattern.test(str)) {
        alert(str + " is not a valid URL.");
        return false;
    } else {
        alert(str + " is a valid URL.");
        return true;
    }
}

ただし、文字列が URI であるかどうかを確認する必要がfile://ありchrome-extension://ますftp://

どうすればこれを行うことができますか?正規表現を使った完全な初心者...

4

1 に答える 1

1

連結の最初の文字列を次のように変更します。

^((https?|file|ftp|chrome-extension):\/\/)?
于 2013-04-23T09:44:13.907 に答える