jquery textarea里面的html标签strip / remove

时间:2016-05-04 14:11:24

标签: jquery html tags textarea

我想计算textarea中的字符,但我不想让它计算html标签。

摘录:

$('#m-summary').keyup(function() {
  var sumTxt=$('#m-summary').val().length;
  if(sumTxt < 200) {
    $('#result-summary').html("<span>200 / </span><span style='font- style:normal;font-weight:bold;'>"+sumTxt+"</span>");
  }
  else {
    $('#result-summary').html("<span style='color:green'>200 / </span><span style='color:green;font-style:normal;font-  weight:bold;'>"+sumTxt+"</span>");
  }
}
);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
<div class="text-area">
  <textarea name="m_summary" id="m-summary"></textarea>
  <div id="result-summary">200 / 0</div>
</div>

我在textarea里面写道:你好。计数长度= 12。

3 个答案:

答案 0 :(得分:1)

使用:str.replace(/<\/?[^>]+(>|$)/g, "")

段:

$('#m-summary').keyup(function() {
  var sT=$('#m-summary').val().replace(/<\/?[^>]+(>|$)/g, "");
  var sumTxt=sT.length;
  if(sumTxt < 200) {
    $('#result-summary').html("<span>200 / </span><span style='font- style:normal;font-weight:bold;'>"+sumTxt+"</span>");
  }
  else {
    $('#result-summary').html("<span style='color:green'>200 / </span><span style='color:green;font-style:normal;font-  weight:bold;'>"+sumTxt+"</span>");
  }
}
);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
<div class="text-area">
  <textarea name="m_summary" id="m-summary"></textarea>
  <div id="result-summary">200 / 0</div>
</div>

答案 1 :(得分:0)

如果html包含在一个字符串中,那么你将需要一个html解析器去除html,然后计算字符串,类似于http://ejohn.org/blog/pure-javascript-html-parser/。如果我没有正确理解问题,你只需要文本区域内的字符串长度试试:

$("#m-summary").text().length; 

我也希望你为此尝试原生的javascript:

document.getElementById("m-summary").value.length

答案 2 :(得分:-2)

$("#m-summary").text()会为您提供不是html标签的文字,然后您可以检查这样的长度:

var textval = $("#m-summary").text();
console.log(textval.length());