Премини към съдържанието
Форумът в приложение

По-лесно сърфиране. Научи повече.

Kaldata.com - Форуми

Приложение на форума на цял екран с push известия, значки и други.

За да инсталирате това приложение на iOS и iPadOS
  1. Докоснете Иконата за споделяне в Safari
  2. Превъртете менюто и докоснете Добавяне към началния екран.
  3. Докоснете Добавяне в горния десен ъгъл.
За да инсталирате това приложение на Android
  1. Докоснете менюто с 3 точки (⋮) в горния десен ъгъл на браузъра.
  2. Докоснете Добавяне към началния екран или Инсталиране на приложение.
  3. Потвърдете, като докоснете Инсталиране.

Добре дошли!

Добре дошли в нашите форуми, пълни с полезна информация. Имате проблем с компютъра или телефона си? Публикувайте нова тема и ще намерите решение на всичките си проблеми. Общувайте свободно и открийте безброй нови приятели.

Моля, регистрирайте се за да публикувате тема и да получите пълен достъп до всички функции.

 

Разделяне на стринг. (JavaScript)

Featured Replies

Здравейте. Възможно ли е да се измерни големината на $('body').text() в kb. Целта ми е ако е над 10kb размера на текста, $('body').text() да се раздели на 2 части и да се изпрати през api, при зареждане на самата страница.API има лимит до 10kb размер на текста, а в случая при мене е не повече от 20.

Малко по-завъртяно стана, отколкото си мислех, но...

function strSplit(myStr, bytes) {
if (myStr.length < bytes) {
  return myStr;
}

else {

  n = Math.ceil(myStr.length/bytes);

  for (i=0; i<n; i++) {
  
   for (k=((i+1)*bytes - bytes); k<(i+1)*bytes; k++) {
  
  
	if (myArr[i] == null) {
	 myArr[i] = myStr.charAt(k);
	}
	else {
	 myArr[i] += myStr.charAt(k);
	}
  
   }

  }

  return myArr;
}

}

Подаваш на функцията два аргумента - низ за myStr и число за bytes, в твоя случай например

str = $('body').text();
strSplit(str, 10000);

Ако низът е по-къс от указания размер, функцията ще ти върне направо него, ако е по-голям, ще върне масив, всяко парче от който е с указаната дължина.

Не би ли могло да стане и със substr, вместо вътрешен цикъл?

Трябва да се внимава и с енкодинга! Примерно при windows-1251 енкодинга един символ е 1 байт. При твърд юникод енкодинг, 1 символ е два байта. При UTF енкодингите е още по-шашаво там един символ може да бъде кодиран с 1 или повече байта в зависимост от положението му в кодовата таблица и точния тип енкодинг!

Трябва да се внимава и с енкодинга! Примерно при windows-1251 енкодинга един символ е 1 байт. При твърд юникод енкодинг, 1 символ е два байта. При UTF енкодингите е още по-шашаво там един символ може да бъде кодиран с 1 или повече байта в зависимост от положението му в кодовата таблица и точния тип енкодинг!

Днес научих нещо ново :P

Не бях се замислил наистина.

Не би ли могло да стане и със substr, вместо вътрешен цикъл?

Понякога правя нещата по трудния начин доста преди да се усетя, че има и лесен (и по-правилен). Ама така или иначе имам още хляб да ям...

Редактирано от Disasterpiece (преглед на промените)

Архивирана тема

Темата е твърде стара и е архивирана. Не можете да добавяте нови отговори в нея, но винаги можете да публикувате нова тема, в която да продължи дискусията. Регистрирайте се или влезте във вашия профил за да публикувате нова тема.

Разглеждащи това в момента 0

  • Няма регистрирани потребители разглеждащи тази страница.

Дарение

  • Подкрепи съществуването на форума - направи дарение
    32%
    Дарени 315 € от нужните 1 000 €

Бюлетин

Получавайте известие, когато има важна промяна или новина свързана с форума.

Профил

Навигация

Търсене

Търсене

Конфигуриране на push известия в браузъра

Chrome (Android)
  1. Докоснете иконата на катинар до адресната лента.
  2. Докоснете Разрешения → Известия.
  3. Променете предпочитанията си.
Chrome (Desktop)
  1. Кликнете върху иконата на катинар в адресната лента.
  2. Изберете Настройки на сайта.
  3. Намерете Известия и коригирайте предпочитанията си.