Como você obtém o comprimento de uma string?

243

Como você obtém o comprimento de uma string no jQuery?

RubbleFord
fonte
7
Excelente, basta usar JS normal.
RubbleFord 25/06/2009

Respostas:

471

Você não precisa de jquery, apenas use yourstring.length. Veja a referência aqui e também aqui .

Atualização :

Para oferecer suporte a cadeias unicode, o comprimento precisa ser calculado da seguinte maneira:

[..."𠮷"].length

ou criar uma função auxiliar

function uniLen(s) {
    return [...s].length
}
Artem Barger
fonte
6
Eu também estava, oh as alegrias de SO.
karim79
11
Aposto que é apenas competição. : D
Arnis Lapsa
11
Artem Barger - provavelmente porque ele perguntou sobre o uso do Jquery.
cíclico
2
Artem Barger - provavelmente porque ele estava procurando a mesma coisa que eu: uma maneira de obter o comprimento do texto contido em uma tag HTML. Como sou iniciante, sabia como obter o conteúdo, mas não o comprimento. Nesse sentido, a resposta da gênese abaixo é melhor.
Adrian Pauly
1
"𠮷".length == 2. Como podemos obter o número real de caracteres?
Pierre Thibault
196

A maneira mais fácil:

$('#selector').val().length
Andrei Iarus
fonte
37
a única resposta que responde à pergunta, conforme solicitado.
mtntrailrunner
5
como é isso? não onde a questão é que ele diz alguma coisa sobre a corda vindo de um :inputvalor
mkoryak
2
o mesmo acontece com esta: len = $('#selector').is('div') ? "someString".length : 0e faz tanto sentido ...
mkoryak
mas isso ainda usa javascript, não é? mesmo que a resposta de @Artem Barger #
Malcolm Salvador
41

jQuery é uma biblioteca JavaScript.

Você não precisa usar o jQuery para obter o comprimento de uma sequência, pois é uma propriedade básica do objeto de sequência JavaScript.

somestring.length;
andreialecu
fonte
13
+1 por incluir a linha 'jQuery é uma biblioteca JavaScript'. Muitas respostas estão dizendo que você não precisa do jQuery, mas isso pode ser confuso para uma pessoa que pensa que 'jQuery' e 'JavaScript' são duas coisas diferentes.
Grant Wagner
22

HTML

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

ROTEIRO

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

RESULTADO

10

Joedel
fonte
20

Você não precisa usar o jquery.

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

n será 3.

Lawrence Barsanti
fonte
19

Uma distinção um tanto importante é se o elemento é uma entrada ou não. Se uma entrada você pode usar:

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

caso contrário, se o elemento for um elemento html diferente, como um parágrafo ou item de lista div etc, você deverá usar

$('#selector').text().length;
A_funs
fonte
1
É a resposta certa para esta pergunta! Aqui está realmente definido, como obtém um comprimento do valor "campo de entrada" ou "texto". Adicional, é possível obter comprimento html, como $('#selector').html().length.
Eugen
13

Não é jquery que você precisa, é JS:

alert(str.length);
karim79
fonte
12

Da mesma forma que você faz em javascript:

"something".length

mkoryak
fonte
1

No jQuery:

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

OU

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

Em JS:

var len = str.len;
Mahak Choudhary
fonte
1

Em alguns casos, String.length pode retornar um valor diferente do número real de caracteres visíveis na tela (por exemplo, alguns emojis são codificados por 2 unidades UTF-16):

MDN diz : Esta propriedade retorna o número de unidades de código na cadeia. UTF-16, o formato de string usado pelo JavaScript, usa uma única unidade de código de 16 bits para representar os caracteres mais comuns, mas precisa usar duas unidades de código para caracteres menos usados, portanto , é possível que o valor retornado por tamanho seja não corresponde ao número real de caracteres na sequência .

Maxim Saplin
fonte