Взятие подстроки: substring , substr , slice — КиберПедия 

Архитектура электронного правительства: Единая архитектура – это методологический подход при создании системы управления государства, который строится...

Двойное оплодотворение у цветковых растений: Оплодотворение - это процесс слияния мужской и женской половых клеток с образованием зиготы...

Взятие подстроки: substring , substr , slice

2019-05-27 122
Взятие подстроки: substring , substr , slice 0.00 из 5.00 0 оценок
Заказать работу

В JavaScript существуют целых 3 (!) метода для взятия подстроки, с небольшими отличиями между ними.

substring(start, end)

Метод substring(start, end) возвращает подстроку с позиции start до, но не включая end.

var str = "stringify";

alert(str.substring(0,1)); // "s", символы с позиции 0 по 1 не включая 1.

Если аргумент end отсутствует, то идет до конца строки:

var str = "stringify";

alert(str.substring(2)); // ringify, символы с позиции 2 до конца

substr(start, length)

Substr(start,number)

Первый аргумент имеет такой же смысл, как и в substring, а второй содержит не конечную позицию, а количество символов.

var str = "stringify";

str = str.substr(2,4); // ring, со 2-й позиции 4 символа

alert(str)

Если второго аргумента нет – подразумевается «до конца строки».

slice(start, end)

Возвращает часть строки от позиции start до, но не включая, позиции end. Смысл параметров – такой же как в substring.

Отрицательные аргументы

Различие между substring и slice – в том, как они работают с отрицательными и выходящими за границу строки аргументами:

Substring

Отрицательные аргументы интерпретируются как равные нулю. Слишком большие значения усекаются до длины строки:

alert("testme".substring(-2)); // "testme", -2 становится 0

Кроме того, если start > end, то аргументы меняются местами, т.е. возвращается участок строки между start и end:

alert("testme".substring(4, -1)); // "test"

// -1 становится 0 -> получили substring(4, 0)

// 4 > 0, так что аргументы меняются местами -> substring(0, 4) = "test"

Slice

Отрицательные значения отсчитываются от конца строки:

alert("testme".slice(-2)); // "me", от 2 позиции с конца

alert("testme".slice(1, -1)); // "estm", от 1 позиции до первой с конца.

Это гораздо более удобно, чем странная логика substring.

Отрицательное значение первого параметра поддерживается в substr во всех браузерах, кроме IE8-.

Если выбирать из этих трёх методов один, для использования в большинстве ситуаций – то это будет slice: он и отрицательные аргументы поддерживает и работает наиболее очевидно.

Специальные символы

Строки могут содержать специальные символы, которые позволяют форматировать текст прямо из кода.

Самый часто используемый из таких символов – это «перевод строки».

Он обозначается как \n, например:

alert('Привет\nМир'); // выведет "Мир" на новой строке

Есть и более редкие символы, вот их список:

Специальные символы

Символ Описание \n New line \t Tab \uNNNN Символ в кодировке Юникод с шестнадцатеричным кодом `NNNN`. Например, `\u00A9` -- юникодное представление символа копирайт ©

Экранирование специальных символов

Если строка в одинарных кавычках, то внутренние одинарные кавычки внутри должны быть экранированы, то есть снабжены обратным слешем \', вот так:

var str = 'I\'m a JavaScript programmer';

В двойных кавычках – экранируются внутренние двойные:

var str = "I'm a JavaScript \"programmer\" ";

alert(str); // I'm a JavaScript "programmer"

Экранирование служит исключительно для правильного восприятия строки JavaScript. В памяти строка будет содержать сам символ без '\'.

Сам символ обратного слэша '\' является служебным, поэтому всегда экранируется, т.е пишется как \\:

var str = ' символ \\ ';

alert(str); // символ \

Заэкранировать можно любой символ. Если он не специальный, то ничего не произойдёт:

alert("\a"); // a

// идентично alert("a");

Логическое преобразование

Преобразование к true/false происходит в логическом контексте, таком как if(…) или других подобных местах, и при применении логических операторов.

Все значения, которые интуитивно «пусты», становятся false. Их несколько: 0, пустая строка, null, undefined и NaN.

Остальное, в том числе и любые объекты – true.

Полная таблица преобразований:

Таблица логических преобразований

Значение Преобразуется в
undefined, null false
Числа Все true, кроме 0, NaN -- false.
Строки Все true, кроме пустой строки "" -- false
Объекты Всегда true

Для явного преобразования используется двойное логическое отрицание!!value или вызов Boolean(value).

Обратите внимание: строка "0" становится true


Поделиться с друзьями:

Особенности сооружения опор в сложных условиях: Сооружение ВЛ в районах с суровыми климатическими и тяжелыми геологическими условиями...

Семя – орган полового размножения и расселения растений: наружи у семян имеется плотный покров – кожура...

Археология об основании Рима: Новые раскопки проясняют и такой острый дискуссионный вопрос, как дата самого возникновения Рима...

Своеобразие русской архитектуры: Основной материал – дерево – быстрота постройки, но недолговечность и необходимость деления...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.012 с.