¿Cómo se obtiene la longitud de una cuerda?

Respuestas:

471

No necesitas jquery, solo úsalo yourstring.length. Ver referencia aquí y también aquí .

Actualización :

Para admitir cadenas unicode, la longitud debe calcularse de la siguiente manera:

[..."𠮷"].length

o crear una función auxiliar

function uniLen(s) {
    return [...s].length
}
Artem Barger
fuente
66
Yo también, oh, las alegrías de SO.
karim79
11
Apuesto a que es solo competencia. : D
Arnis Lapsa
11
Artem Barger, probablemente porque preguntó sobre el uso de Jquery.
cíclico
2
Artem Barger, probablemente porque estaba buscando lo mismo que yo: una forma de obtener la longitud del texto contenido en una etiqueta HTML. Soy un principiante, así que sabía cómo obtener el contenido pero no su longitud. En ese sentido, la respuesta de Génesis a continuación es mejor.
Adrian Pauly
1
"𠮷".length == 2. ¿Cómo podemos obtener el número real de caracteres?
Pierre Thibault,
196

La forma más fácil:

$('#selector').val().length
Andrei Iarus
fuente
37
La única respuesta que responde a la pregunta formulada.
mtntrailrunner
55
¿como es eso? en ninguna parte de la pregunta dice nada sobre la cadena que proviene de un :inputvalor
mkoryak
2
este también: len = $('#selector').is('div') ? "someString".length : 0y tiene tanto sentido ...
mkoryak
pero esto todavía solo usa JavaScript, ¿no? igual que la respuesta de @Artem Barger
Malcolm Salvador
41

jQuery es una biblioteca de JavaScript.

No necesita usar jQuery para obtener la longitud de una cadena porque es una propiedad básica de objeto de cadena de JavaScript.

somestring.length;
andreialecu
fuente
13
+1 por incluir la línea 'jQuery es una biblioteca de JavaScript'. Muchas respuestas dicen que no necesita jQuery, pero esto puede ser confuso para una persona que piensa que 'jQuery' y 'JavaScript' son dos cosas diferentes.
Grant Wagner
22

HTML

<div class="selector">Text mates</div>

GUIÓN

alert(jQuery('.selector').text().length);

RESULTADO

10

Joedel
fuente
20

No necesitas usar jquery.

var myString = 'abc';
var n = myString.length;

n será 3.

Lawrence Barsanti
fuente
19

Una distinción algo importante es si el elemento es una entrada o no. Si una entrada puede usar:

$('#selector').val().length;

de lo contrario, si el elemento es un elemento html diferente, como un párrafo o un elemento de lista div, etc., debe usar

$('#selector').text().length;
A_funs
fuente
1
Es correcto ¡Respuesta para esta pregunta! Aquí está realmente definido, cómo obtiene una longitud de "campo de entrada" o valor de "texto". Adicional es posible obtener longitud html, como $('#selector').html().length.
Eugen
13

No es jquery lo que necesitas, es JS:

alert(str.length);
karim79
fuente
12

de la misma manera que lo haces en javascript:

"something".length

mkoryak
fuente
1

En jQuery:

var len = jQuery('.selector').val().length; //or 
( var len = $('.selector').val().length;) //- If Element is Text Box

O

var len = jQuery('.selector').html().length; //or
( var len = $('.selector').html().length; ) //- If Element is not Input Text Box

En JS:

var len = str.len;
Mahak Choudhary
fuente
1

En algunos casos, String.length puede devolver un valor que es diferente del número real de caracteres visibles en la pantalla (por ejemplo, algunos emojis están codificados por 2 unidades UTF-16):

MDN dice : Esta propiedad devuelve el número de unidades de código en la cadena. UTF-16, el formato de cadena utilizado por JavaScript, usa una sola unidad de código de 16 bits para representar los caracteres más comunes, pero necesita usar dos unidades de código para los caracteres menos utilizados, por lo que es posible que el valor devuelto por la longitud sea no coincide con el número real de caracteres en la cadena .

Maxim Saplin
fuente