Как вы получаете длину строки?

Ответы:

471

Вам не нужно JQuery, просто используйте yourstring.length. Смотрите ссылку здесь, а также здесь .

Обновление :

Чтобы поддерживать строки Unicode, длина должна быть рассчитана следующим образом:

[..."𠮷"].length

или создайте вспомогательную функцию

function uniLen(s) {
    return [...s].length
}
Артем Баргер
источник
6
Я тоже был, о, радости ТАК.
karim79
11
Могу поспорить, что это просто соревнование. : D
Арнис Лапса
11
Артем Баргер - вероятно, потому что он спросил об использовании Jquery.
Цикл
2
Артем Баргер - вероятно, потому что он искал то же самое, что и я: способ получить длину текста, содержащегося в теге HTML. Я новичок, поэтому я знал, как получить контент, но не его длину. В этом смысле ответ Genesis ниже лучше.
Адриан Поли
1
"𠮷".length == 2, Как мы можем получить фактическое количество символов?
Пьер Тибо
196

Самый простой способ:

$('#selector').val().length
Андрей Ярус
источник
37
единственный ответ, который отвечает на вопрос как задано.
mtntrailrunner
5
Как так? нет, где в вопросе он говорит что-нибудь о строке, :input
получаемой
2
так же и это: len = $('#selector').is('div') ? "someString".length : 0и имеет такой же смысл ...
mkoryak
но это все еще только использует JavaScript, не так ли? такой же, как ответ @Artem Barger
Малкольм Сальвадор
41

jQuery - это библиотека JavaScript.

Вам не нужно использовать jQuery для получения длины строки, потому что это базовое свойство строкового объекта JavaScript.

somestring.length;
andreialecu
источник
13
+1 за включение строки «jQuery - библиотека JavaScript». Многие ответы говорят, что вам не нужен jQuery, но это может сбить с толку человека, который считает, что «jQuery» и «JavaScript» - это две разные вещи.
Грант Вагнер
22

HTML

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

SCRIPT

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

РЕЗУЛЬТАТ

10

Joedel
источник
20

Вам не нужно использовать JQuery.

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

n будет 3.

Лоуренс Барсанти
источник
19

Несколько важное различие заключается в том, является ли элемент входным или нет. Если вход вы можете использовать:

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

в противном случае, если элемент является другим html-элементом, таким как div абзаца или элемента списка и т. д., вы должны использовать

$('#selector').text().length;
A_funs
источник
1
Это правильный ответ на этот вопрос! Здесь действительно определено, как получается длина «поля ввода» или «текстового» значения. Дополнительно можно получить длину html, например $('#selector').html().length.
Евгений
13

Вам нужен не JQuery, а JS:

alert(str.length);
karim79
источник
12

так же, как вы делаете это в JavaScript:

"something".length

mkoryak
источник
1

В jQuery:

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

ИЛИ

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

В JS:

var len = str.len;
Махак Чоудхари
источник
1

В некоторых случаях String.length может возвращать значение, которое отличается от фактического количества символов, видимых на экране (например, некоторые смайлики кодируются 2 единицами UTF-16):

MDN говорит : это свойство возвращает количество единиц кода в строке. UTF-16, строковый формат, используемый JavaScript, использует одну 16-битную кодовую единицу для представления наиболее распространенных символов, но ему нужно использовать две кодовые единицы для менее часто используемых символов, поэтому возможно, чтобы значение, возвращаемое длиной для не соответствует фактическому количеству символов в строке .

Максим Саплин
источник