2013-04-02 3 views
1

В принципе, я хочу создать функцию, которая будет искать строку для привязывающего тега, когда она найдет ее, посчитав символы между ними и вернув это число. Я делаю это для редактора, который подсчитывает количество символов в текстовом поле, потому что у textarea есть ограничение, которое может ввести пользователь, и я не хочу, чтобы символы в ссылке подсчитывались против этой суммы.Javascript - количество символов привязанного тега

Если у меня есть это в текстовое поле:

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 символов, которые я не хочу идти к счету.

Надеюсь, что имеет смысл.

+0

Вы имеете в виду подсчет символов abcd между abcd? –

ответ

2

Почему вы хотите просто раздеться только теги анкерные? Вы можете посмотреть на this question. Вот измененный ответ, чтобы вернуть длину некоторого html-кода.

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

Это также работает для вашего примера выше.

+0

Я собираюсь попробовать это. Спасибо Jeff – ninedoors

+0

Да, это работает отлично. – ninedoors

0

Если вход должен быть строкой:

function getLength (string) { 
    return string.match(/<a[^>]+>([^<]+)<\/a>/)[1].length 
} 
-1
var a = document.getElementById('link'); 
var b = a.outerHTML.length - a.innerHTML.length; 

Я не проверял, но он может работать.

0

Не exactely уверены, что вам нужно, но эта функция возвращает 11 для примера текст:

function count(textareaInput) { 
    var count = 0; 
    $(textareaInput).filter('a').each(function() { 
    count += $(this).text().length; 
    }); 
    return count; 
} 
0

Вы можете использовать что-то вроде этого:

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

See working demo.

Смежные вопросы