基本上我想创建一个函数来搜索字符串中的锚标记,当它找到一个时,计算其间的字符并返回该数字。我这样做是为了一个编辑textarea中字符数的编辑器,因为textarea有一个用户可以输入的限制,我不希望链接中的字符计入该总数。
如果我在textarea中有这个:
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 :(得分:2)
为什么你只想剥离锚标签?您可能希望查看this question。这是一个修改后的答案,用于返回某些HTML代码的长度。
function plainTextLength(html) {
var tmp = document.createElement("div");
tmp.innerHTML = html;
var txt = tmp.textContent||tmp.innerText;
return txt.length;
}
这也适用于上面的示例。
答案 1 :(得分:0)
如果输入应为字符串:
function getLength (string) {
return string.match(/<a[^>]+>([^<]+)<\/a>/)[1].length
}
答案 2 :(得分:0)
不能完全确定您需要什么,但此函数会为您的示例文本返回11:
function count(textareaInput) {
var count = 0;
$(textareaInput).filter('a').each(function() {
count += $(this).text().length;
});
return count;
}
答案 3 :(得分:0)
您可以使用以下内容:
$('textarea').keyup(function() {
$('#count').text( this.value.replace(/<\/?a\s*[^>]*>/g, '').length );
});
答案 4 :(得分:-1)
var a = document.getElementById('link');
var b = a.outerHTML.length - a.innerHTML.length;
我没有测试它,但它可能有用。