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


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
}

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

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;

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


20

Vous n'avez pas besoin d'utiliser jquery.

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

n sera 3.


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;

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);

12

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

"something".length


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;

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 .

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.