Comment obtenez-vous la longueur d'une chaîne?

243

Comment obtenir la longueur d'une chaîne dans jQuery?

RubbleFord
la source
7
Excellent, utilisez simplement JS normal.
RubbleFord

Réponses:

471

Vous n'avez pas besoin de jquery, utilisez-le yourstring.length. Voir référence ici et aussi ici .

Mise à jour :

Pour prendre en charge les chaînes unicode, la longueur doit être calculée comme suit:

[..."𠮷"].length

ou créer une fonction auxiliaire

function uniLen(s) {
    return [...s].length
}
Artem Barger
la source
6
J'étais aussi, oh les joies de SO.
karim79
11
Je parie que c'est juste de la compétition. : D
Arnis Lapsa
11
Artem Barger - probablement parce qu'il a demandé à utiliser Jquery.
cyclique
2
Artem Barger - probablement parce qu'il cherchait la même chose que moi: un moyen d'obtenir la longueur du texte contenu dans une balise HTML. Je suis débutant, donc je savais comment obtenir le contenu mais pas sa longueur. En ce sens, la réponse de la genèse ci-dessous est meilleure.
Adrian Pauly
1
"𠮷".length == 2. Comment obtenir le nombre réel de caractères?
Pierre Thibault
196

La façon la plus simple:

$('#selector').val().length
Andrei Iarus
la source
37
la seule réponse qui réponde à la question posée.
mtntrailrunner
5
comment c'est? aucun endroit dans la question ne dit-il quelque chose à propos de la chaîne provenant d'une :inputvaleur
mkoryak
2
il en va de même pour celui-ci: len = $('#selector').is('div') ? "someString".length : 0et est tout aussi logique ...
mkoryak
mais cela utilise juste javascript n'est-ce pas? même que la réponse de @Artem Barger
Malcolm Salvador
41

jQuery est une bibliothèque JavaScript.

Vous n'avez pas besoin d'utiliser jQuery pour obtenir la longueur d'une chaîne, car il s'agit d'une propriété d'objet de chaîne JavaScript de base.

somestring.length;
andreialecu
la source
13
+1 pour inclure la ligne «jQuery est une bibliothèque JavaScript». Beaucoup de réponses disent que vous n'avez pas besoin de jQuery, mais cela peut être déroutant pour une personne qui pense que «jQuery» et «JavaScript» sont deux choses différentes.
Grant Wagner
22

HTML

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

SCÉNARIO

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

RÉSULTAT

dix

Joedel
la source
20

Vous n'avez pas besoin d'utiliser jquery.

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

n sera 3.

Lawrence Barsanti
la source
19

Une distinction quelque peu importante est de savoir si l'élément est une entrée ou non. Si une entrée vous pouvez utiliser:

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

sinon, si l'élément est un élément html différent comme un paragraphe ou un élément de liste div, etc., vous devez utiliser

$('#selector').text().length;
A_funs
la source
1
C'est la bonne réponse à cette question! Voici vraiment défini, comment obtient une longueur de valeur "champ de saisie" ou "texte". De plus, il est possible d'obtenir une longueur html, comme $('#selector').html().length.
Eugen
13

Ce n'est pas jquery dont vous avez besoin, c'est JS:

alert(str.length);
karim79
la source
12

de la même manière que vous le faites en javascript:

"something".length

mkoryak
la source
1

Dans 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

En JS:

var len = str.len;
Mahak Choudhary
la source
1

Dans certains cas, String.length peut renvoyer une valeur différente du nombre réel de caractères visibles à l'écran (par exemple, certains emojis sont encodés par 2 unités UTF-16):

MDN dit : Cette propriété renvoie le nombre d'unités de code dans la chaîne. UTF-16, le format de chaîne utilisé par JavaScript, utilise une seule unité de code 16 bits pour représenter les caractères les plus courants, mais doit utiliser deux unités de code pour les caractères moins couramment utilisés, il est donc possible que la valeur renvoyée par la longueur soit ne correspond pas au nombre réel de caractères dans la chaîne .

Maxim Saplin
la source