1

基本的に、アンカータグの文字列を検索する関数を作成したいと思います。アンカータグが見つかったら、その間の文字を数えてその数を返します。テキストエリアにはユーザーが入力できる制限があり、リンク内の文字をその合計に対してカウントしたくないため、テキストエリア内の文字数をカウントしているエディターに対してこれを行っています。

テキストエリアにこれがある場合:

This is what it looks like here <a href="http://www.bmhl.com">Placeholder</a>.  Please click the link to go to the page.

アンカーの前に 32 文字、その間に 11 文字、後に 42 文字、合計 85 文字あります。アンカー タグには、数えたくない 34 文字があります。

それが理にかなっていることを願っています。

4

5 に答える 5

2

アンカータグだけを削除したいのはなぜですか? この質問を見たいと思うかもしれません。一部のHTMLコードの長さを返すように修正された回答を次に示します。

function plainTextLength(html) {
    var tmp = document.createElement("div");
    tmp.innerHTML = html;
    var txt = tmp.textContent||tmp.innerText;
    return txt.length;
}

これは、上記の例でも機能します。

于 2013-04-02T18:15:41.313 に答える
0

次のようなものを使用できます。

$('textarea').keyup(function() {
    $('#count').text( this.value.replace(/<\/?a\s*[^>]*>/g, '').length );
});

動作デモを参照してください

于 2013-04-02T18:20:37.643 に答える
0

何が必要か正確にはわかりませんが、この関数はサンプル テキストに対して 11 を返します。

function count(textareaInput) {  
  var count = 0;  
  $(textareaInput).filter('a').each(function() { 
    count += $(this).text().length;
  });
  return count;
}
于 2013-04-02T18:12:10.527 に答える