Jak uzyskać długość sznurka?

243

Jak uzyskać długość ciągu w jQuery?

RubbleFord
źródło
7
Doskonałe, po prostu użyj normalnego JS.
RubbleFord,

Odpowiedzi:

471

Nie potrzebujesz jquery, po prostu użyj yourstring.length. Zobacz referencje tutaj i tutaj .

Aktualizacja :

Aby obsługiwać ciągi Unicode, długość należy obliczyć w następujący sposób:

[..."𠮷"].length

lub utwórz funkcję pomocniczą

function uniLen(s) {
    return [...s].length
}
Artem Barger
źródło
6
Ja też, och, radości SO.
karim79
11
Założę się, że to tylko konkurencja. : D
Arnis Lapsa
11
Artem Barger - prawdopodobnie dlatego, że zapytał o użycie Jquery.
cykliczny
2
Artem Barger - prawdopodobnie dlatego, że szukał tego samego, co ja: sposobu na uzyskanie długości tekstu zawartego w tagu HTML. Jestem początkującym, więc wiedziałem, jak zdobyć treść, ale nie jej długość. W tym sensie odpowiedź genesis poniżej jest lepsza.
Adrian Pauly
1
"𠮷".length == 2. Jak możemy uzyskać rzeczywistą liczbę znaków?
Pierre Thibault
196

Najłatwiejszy sposób:

$('#selector').val().length
Andrei Iarus
źródło
37
jedyna odpowiedź, która odpowiada na zadane pytanie.
mtntrailrunner
5
w jaki sposób? nie, gdzie w pytaniu nie mówi nic o ciągu pochodzącym z :inputwartości
mkoryak
2
podobnie jak ten: len = $('#selector').is('div') ? "someString".length : 0i ma taki sam sens ...
mkoryak
ale to wciąż używa javascript, prawda? taki sam jak odpowiedź @Artem Barger
Malcolm Salvador
41

jQuery to biblioteka JavaScript.

Nie musisz używać jQuery, aby uzyskać długość ciągu, ponieważ jest to podstawowa właściwość obiektu ciągu JavaScript.

somestring.length;
andreialecu
źródło
13
+1 za włączenie wiersza „jQuery jest biblioteką JavaScript”. Wiele odpowiedzi mówi, że nie potrzebujesz jQuery, ale może to być mylące dla osoby, która uważa, że ​​„jQuery” i „JavaScript” to dwie różne rzeczy.
Grant Wagner,
22

HTML

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

SCENARIUSZ

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

WYNIK

10

Joedel
źródło
20

Nie musisz używać jquery.

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

n będzie 3.

Lawrence Barsanti
źródło
19

Nieco ważnym rozróżnieniem jest to, czy element jest wejściem, czy nie. Jeśli dane wejściowe można użyć:

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

w przeciwnym razie, jeśli element jest innym elementem HTML, takim jak div akapitu lub elementu listy itp., musisz użyć

$('#selector').text().length;
A_funs
źródło
1
Właściwa odpowiedź na to pytanie! Tutaj naprawdę zdefiniowano, w jaki sposób uzyskuje się wartość „pola wejściowego” lub „tekstu”. Dodatkowo możliwe jest uzyskanie długości HTML, jak $('#selector').html().length.
Eugen
13

Nie potrzebujesz jquery, to JS:

alert(str.length);
karim79
źródło
12

tak samo jak robisz to w javascript:

"something".length

mkoryak
źródło
1

W jQuery:

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

LUB

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

W JS:

var len = str.len;
Mahak Choudhary
źródło
1

W niektórych przypadkach String.length może zwrócić wartość inną niż rzeczywista liczba znaków widocznych na ekranie (np. Niektóre emoji są kodowane przez 2 jednostki UTF-16):

MDN mówi : Ta właściwość zwraca liczbę jednostek kodu w ciągu. UTF-16, format ciągu używany przez JavaScript, wykorzystuje pojedynczą 16-bitową jednostkę kodu do reprezentowania najczęściej występujących znaków, ale musi używać dwóch jednostek kodu dla mniej często używanych znaków, więc możliwe jest, aby wartość zwracana przez długość do nie pasuje do rzeczywistej liczby znaków w ciągu .

Maxim Saplin
źródło