0

現在、正規表現を使用www.して、テキスト領域に入力された URL を削除しています。私はこれを次の方法で行いました:

var input = document.getElementById("tweet_text");
input.onkeyup = function() {
    input.value = input.value.replace(/www\.*/,"");
}

URL をコピーしてテキストエリアに貼り付けると、正規表現がその役割を果たします。

URLを手動で入力した場合、.. 最後に到達するwwwwが削除され、入力を続けることができます。明らかに、次の文字は.そこに残り、次のような結果になります。

http://.example.com

次のようになります。

http://example.com

これを解決する方法についてのアイデアはありますか?

4

3 に答える 3

2

これ.*は、空スペース (0 回以上の繰り返し) にも一致するために発生しています。したがって、www\.*正常に一致wwwし、それを置き換えます。そして、タイプに進むと.、パターンに一致しないため、置き換えられません。

www\.+またはwww\.代わりに使用してみてください:

input.value = input.value.replace(/www\.+/,"");

また:

input.value = input.value.replace(/www\./,"");
于 2013-10-23T10:53:12.573 に答える
1

この置換機能は機能します:

input.value = input.value.replace(/(^|\/)www\./i, "$1");
于 2013-10-23T10:51:07.320 に答える
0

これは、onkeyup イベントに夢中になっているためです。代わりに onblur を使用するように変更します。これで問題が解決するはずです。

于 2013-10-23T10:54:00.190 に答える