使用jQuery计算字符数

40

如何使用jQuery计算文本框中字符的数量?

$("#id").val().length < 3

只计算了三个字符空间,而不是字符的数量。


$("#id").val().length 返回字符串中的字符数。有什么问题吗? - gen_Eric
1
什么意思是“只计算了3个字符空间,但不计算字符数量”? - gen_Eric
我需要计算字符数量,不包括空格,类似于jquery.trim()的修剪函数? - user550265
我正在使用 $("#id").val().length,但当我使用 .html() 打印它时,它仍然是0。 - yaakov
3个回答

114

计算包括空格在内的字符长度:

$("#id").val().length

计算不包括空格的字符长度:

$("#id").val().replace(/ /g,'').length

仅删除开头和结尾的空格:

$.trim($("#test").val()).length

例如,字符串" t e s t "将被解析为:
//" t e s t "
$("#id").val(); 

//Example 1
$("#id").val().length; //Returns 9
//Example 2
$("#id").val().replace(/ /g,'').length; //Returns 4
//Example 3
$.trim($("#test").val()).length; //Returns 7

这里是使用它们全部的演示。


那个正则表达式将会满足你的需求。 - Rion Williams
@RionWilliams,我使用了你的fiddle并进行了一些调整,但它没有起作用。在这里(http://jsfiddle.net/yak613/juhbr43m/)。有什么想法吗? - yaakov
@yak613 看起来你提供的代码似乎没有做任何事情。它将在页面首次加载时显示一个计数,但之后没有太多作用。如果你想要在输入时显示计数,你可以将事件处理程序附加到keypress、keyup或keydown事件上,类似于这个例子,或者如果你只想在按钮点击时计算它,这个例子应该可以工作。 - Rion Williams

2
使用.length来计算字符数量,使用$.trim()函数去除空格,使用replace(/ /g,'')将多个空格替换为一个空格。以下是一个例子:
   var str = "      Hel  lo       ";
   console.log(str.length); 
   console.log($.trim(str).length); 
   console.log(str.replace(/ /g,'').length); 

输出:

20
7
5

来源:如何使用JQuery计算字符串中的字符数


0

由于这个问题的所有给出的答案都对我无效(我在想jQuery是否在这方面有所改变?),因此我添加了在我的情况下有效的解决方案,即使用$('#myelement').text().length;来确定标签内字符的数量(由标签名称或ID定义)。

var x = $('h1').text().length;
console.log(x);
$('#solution').text(x);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<h1>How many characters are in this H1?</h1>
<p>This is just some more text.</p>
<p style="font-size: 1.4em;">Solution: There are <span id="solution"></span> characters in the h1 tag, including spaces</p>


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接