13

だから私はこのコードを持っています:

function validateText(str)
{
    var tarea = str;
    var tarea_regex = /^(http|https)/;
    if(tarea_regex.test(String(tarea).toLowerCase()) == true)
    {
        $('#textVal').val('');
    }
}

これはこれに完全に機能します:

https://hello.com
http://hello.com

ただし、次の場合は対象外です。

これはウェブサイトですhttp: //hello.comasdasdasdasdas

読書をしてみましたが、どこに置けばいいのかわかりません*?ここに従って文字列の任意の場所で式をチェックするため-> http://www.regular-expressions.info/reference.html

ありがとうございました

4

5 に答える 5

20

見た目からは、文字列にhttpまたはhttpsが存在するかどうかを確認しているだけです。正規表現は、その目的には少しやり過ぎです。を使用してこの単純なコードを試してくださいindexOf

function validateText(str)
{
    var tarea = str;
    if (tarea.indexOf("http://") == 0 || tarea.indexOf("https://") == 0) {
        // do something here
    }
}
于 2012-05-16T19:40:24.343 に答える
16

これを試して:

function validateText(string) {
  if(/(http(s?)):\/\//i.test(string)) {
    // do something here
  }
}
于 2014-09-29T09:50:26.970 に答える
4

先頭の^inは、文字列の先頭と一致します。削除するだけです。

var tarea_regex = /^(http|https)/;

する必要があります

var tarea_regex = /(http|https)/;
于 2012-05-16T19:39:38.960 に答える
4
((http(s?))\://))

ここにたくさんのアイデアがあります:http ://regexlib.com/Search.aspx?k = URL&AspxAutoDetectCookieSupport = 1

于 2012-05-16T19:40:07.197 に答える
3

行頭文字の代わりに単語区切りを使用してみましたか?

var tarea_regex = /\b(http|https)/;

それはあなたが望むと思うことをしているようです。ここを参照してください:http://jsfiddle.net/BejGd/

于 2012-05-16T19:39:02.083 に答える