使用 javascript 计算 html 标签长度
Counting html tag length using javascript
我有一个像这样的 html 字符串:
<span class="1"><br>hi how<br>are</span><span>you?</span><br>
和一个文本字符串:"hi how are you?"
我有一个数字 n,例如 4。
在文本字符串中,第 4 个字符(从 0 开始计数)是 "o"。
我想使用 tag_count() 从 html 字符串中获取相同的字符。
在那种情况下,变化应该是 20,但我不起作用。
var string="<span class="1"><br>hi how<br>are</span><span>you?</span><br>";
var c=4+tag_count(4,string);
function tag_count(n,string) {
var variation=0;
var i;
for(i=0;i<=n;i++) {
if(string.charAt(i)=="<") {
var j=0;
while((string.charAt(i+j)!=">")&&(string.charAt(i+j)!==undefined)) {
j++;
}
n=n+j+1;
variation=variation+j+1;
}
}
return(variation);
}
你可以这样做:
var string="<span class="1"><br>hi how<br>are</span><span>you?</span><br>";
var length = $(string).find('*').andSelf().length;
console.log(length);
最好的方法:
- 使用
regex
和 replace
将所有标签替换为空字符串。
- 输出字符位置用
charAt
.
查找标签的正则表达式:
var tags = /<+?.*?>/g;
换句话说:查找从 <
到 >
的所有内容。 *
后面的?
表示是non greedy
,这样每一个标签都可以找到。没有?
就比较贪心,只会找一个标签,就是整个html。用空字符串替换匹配项:
var str = html.replace(tags, "");
完成JavaScript
var html = "<span class='one1'><br>hi how<br>are</span><span>you?</span><br>";
function charAtHtmlText(html, n) {
var tags = /<+?.*?>/g;
var str = html.replace(tags, "");
var res = str.charAt(n);
return res;
}
var res = charAtHtmlText(html, 4);
alert(res);
// console.log(res);
我有一个像这样的 html 字符串:
<span class="1"><br>hi how<br>are</span><span>you?</span><br>
和一个文本字符串:"hi how are you?"
我有一个数字 n,例如 4。 在文本字符串中,第 4 个字符(从 0 开始计数)是 "o"。 我想使用 tag_count() 从 html 字符串中获取相同的字符。 在那种情况下,变化应该是 20,但我不起作用。
var string="<span class="1"><br>hi how<br>are</span><span>you?</span><br>";
var c=4+tag_count(4,string);
function tag_count(n,string) {
var variation=0;
var i;
for(i=0;i<=n;i++) {
if(string.charAt(i)=="<") {
var j=0;
while((string.charAt(i+j)!=">")&&(string.charAt(i+j)!==undefined)) {
j++;
}
n=n+j+1;
variation=variation+j+1;
}
}
return(variation);
}
你可以这样做:
var string="<span class="1"><br>hi how<br>are</span><span>you?</span><br>";
var length = $(string).find('*').andSelf().length;
console.log(length);
最好的方法:
- 使用
regex
和replace
将所有标签替换为空字符串。 - 输出字符位置用
charAt
.
查找标签的正则表达式:
var tags = /<+?.*?>/g;
换句话说:查找从 <
到 >
的所有内容。 *
后面的?
表示是non greedy
,这样每一个标签都可以找到。没有?
就比较贪心,只会找一个标签,就是整个html。用空字符串替换匹配项:
var str = html.replace(tags, "");
完成JavaScript
var html = "<span class='one1'><br>hi how<br>are</span><span>you?</span><br>";
function charAtHtmlText(html, n) {
var tags = /<+?.*?>/g;
var str = html.replace(tags, "");
var res = str.charAt(n);
return res;
}
var res = charAtHtmlText(html, 4);
alert(res);
// console.log(res);