0

さて、私は 1 つのパターンを作成しようとしましたが、テキストが次の基準に一致しないことを確認する正規表現の作成に成功しませんでした

以下のようなもので始めるべきではありません

    http://
    http://www.
    http://
    http://www.
    www.

一般的な考え方は、ユーザーが URL のように見えるユーザー名を選択できないようにすることです。

ここに私が試したさまざまなパターンの試みがありますが、これらは何らかの形で失敗します。

<script type="text/javascript" language="javascript">
    function validate(name){

        var pattern = /(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/;
        var pattern = /^((http|https):\/\/)?[a-z0-9]+([-.]{1}[a-z0-9]+).[a-z]{2,5}(:[0-9]{1,5})?(\/.)?$/;
        var pattern = ^([^www\.]([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]*[a-zA-Z0-9])\.)*([A-Za-z0-9]|[A-Za-z0-9][A-Za-z0-9\-]*[A-Za-z0-9])$;

        var _test = pattern.test(name);
        alert("_test is " + _test);

        return false;
     }

</scipt>

どんな助けでも大歓迎です

ズバイル

4

2 に答える 2

1

それはで簡略化することができます

://|www.

以下のこの例はC#です:

//Pattern
string pattern = "://|www.";
//Execute the regex
Match match = Regex.Match(testInput, pattern);
//Test result 
if (match.Success)
   Console.WriteLine("It's an url!");
于 2013-01-18T14:16:29.197 に答える
0

これは、ここで^((http(s)?://(www.)?)|(www.)).*
テストできるパターンです。

function validate(name){
    var pattern = /^((http(s)?:\/\/(www.)?)|(www.)).*/;
    return pattern.test(name);
}

私はこれが機能することを試しました。

編集:

はい、ドットもエスケープするのを忘れています。使用する/^((http(s)?:\/\/(www\.)?)|(www\.)).*/

于 2013-01-18T13:57:19.193 に答える