Различия

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


object_string [2025/07/06 12:39] (текущий) – создано - внешнее изменение 127.0.0.1
Строка 1: Строка 1:
 +====== JavaScript объект String ======
 +~~Title: Справочник JavaScript свойства объекта String~~
 +{{htmlmetatags>
 +metatag-description=(Объект String в JavaScript позволяет манипулировать и форматировать строки текста и выполнять поиск подстрок в строках.)
 +}}
 +
 +Поддержка строк в [[JavaScript|JavaScript]] обеспечивается объектом String(), который позволяет манипулировать и форматировать строки текста и выполнять поиск подстрок в строках.
 +
 +В таблице представлены свойства и методы строк объекта String [[dom|объекта DOM]], наиболее часто применяемые в сценариях: 
 +
 +Свойство Пояснение 
 +  * string.length Длина (количество символов) строки 
 +  * string.prototype Ссылка на прототип класса объекта. Это свойство позволяет добавлять в объекты новые методы. 
 +  * Метод Пояснение 
 +  * str1.bold() Выводит содержимое строки полужирным шрифтом так, как будто строка заключена в теги <b></b> 
 +  * str1.italics() Выводит содержимое строки курсивом так, как будто строка заключена в теги <i></i> 
 +  * str1.strike() Выводит содержимое строки перечеркнутым так, как будто строка заключена в теги <s></s> 
 +  * str1.big() Выводит содержимое строки шрифтом на единицу большим, чем текущий так, как будто строка заключена в теги <big></big> 
 +  * str1.small() Выводит содержимое строки шрифтом на единицу меньшим, чем текущий так, как будто строка заключена в теги <small></small> 
 +  * str1.sub() Выводит содержимое строки со смещением вниз относительно базовой линии так, как будто строка заключена в теги <sub></sub> 
 +  * str1.sup() Выводит содержимое строки со смещением вверх относительно базовой линии так, как будто строка заключена в теги <sup></sup> 
 +  * str1.fixed() Выводит содержимое строки моноширным шрифтом так, как будто строка заключена в теги <tt></tt> 
 +  * str1.fontSize(size) Выводит содержимое строки шрифтом указанного размера так, как будто строка заключена в теги <font size="size"></font> 
 +  * str1.fontColor(color) Выводит содержимое строки шрифтом указанного цвета так, как будто строка заключена в теги <font color="color"></font> 
 +  * str1.link(url) Возвращает содержимое строки как гиперссылку на указанный ресурс 
 +  * str1.toUpperCase() Возвращает строку в верхнем регистре 
 +  * str1.toLowerCase() Возвращает строку в нижнем регистре
 +  * string str1.charAt(index) Возвращает символ строки из указанной позиции
 +  * number str1.charCodeAt(index) Возвращает Unicode - код символа строки из указанной позиции 
 +  * number str1.indexOf(str2[, start]) Возвращает позицию, с которой начинается первое вхождение подстроки str2 в строку str1.
 +  * Если указан параметр start, поиск подстроки начинается с указанной позиции. Если подстрока str2 в строке str1 не найдена, метод возвращает -1. 
 +  * number str1.lastIndexOf(str2[, end) Возвращает позицию, с которой начинается последнее вхождение подстроки str2 в строку str1.
 +  * Если указан параметр end, поиск подстроки начинается с указанной позиции. Если подстрока str2 в строке str1 не найдена, метод возвращает -1. 
 +  * string str1.slice(start[, end]) Возвращает часть строки от позиции start и заканчивая позицией end не включительно. Если параметр end опущен, подстрока продолжается до конца строки. 
 +
 +  * string str1.**substring**(start[, end]) Возвращает часть строки от позиции start и заканчивая позицией end не включительно. Если параметр end опущен, подстрока продолжается до конца строки. В качестве начальной позиции выступает меньшее из двух указанных значений, т.е. вызовы substring(0,5) и substring(5,0) эквивалентны.
 +  * string str1.**substr**(start[, length]) Возвращает часть строки указанной длины начиная с позиции start. Если параметр length равен 0 или имеет отрицательное значение, возвращается пустая строка.Если параметр length не указан, подстрока продолжается до конца строки.
 +  * array str1.**split**(seperator[, limit]) Разбивает строку str1 на подстроки, разделяемые в строке указанным разделителем и возвращает массив подстрок. Параметр limit служит для ограничения количества элементов в результирующем массиве
 +
 +В таблицу не вошли несколько методов строк, предназначенных для работы с регулярными выражениями.
 +===== Применение методов объекта String форматирующих вывод =====
 +
 +Методы, форматирующие вывод применяются в тех случаях, когда необходимо вывести строку на страницу не просто как текстовый фрагмент, а еще и снабдить ее определенным форматом, то есть вывести строку полужирной, курсивом или заданным цветом текста. Безусловно, можно обойтись и без использования данных функций, однако при этом придется предпринимать дополнительные действия для форматирования вывода. Следует помнить, что функции, форматирующие вывод, не изменяют содержимого строки, они возвращают отформатированную строку. 
 +
 +Приведем практический пример: необходимо вывести список гиперссылок на поисковые системы, которые хранятся в сценарии в виде массива. Ниже показан один из способов реализации данной задачи: 
 +
 +Листинг: Применение методов форматирования вывода строк  
 +<file php>
 +var titles = new Array("Хостинг Консультант","Rambler", "Yandex", "Google", "Altavista");
 +var urls   = new Array("https://dieg.info","http://www.rambler.ru", "http://www.ya.ru", 
 +             "http://www.google.com", "http://www.altavista.com");
 +
 +for (var i=0; i<titles.length; i++) {
 +    document.write (titles[i].bold()+": "+urls[i].link(urls[i])+"<br />");
 +}
 +</file>
 +
 +Приведенный выше фрагмент кода сначала выводит полужирным начертанием название поискового сервера (элементы массива "titles" - заголовки), а, затем, саму гиперссылку из массива "urls", причем, текст гиперссылки и адрес ресурса совпадают. 
 +
 +Для сравнения, ниже приводится строка вывода на страницу без использования вышеописанных методов: 
 +
 +<file php>
 +document.write ("<b>"+titles[i]+"</b>: <a href='"+urls[i]+"'>"+urls[i]+"</a><br />")
 +</file>;
 +===== Применение методов объекта String indexOf() и lastIndexOf() =====
 +
 +Методы indexOf() и lastIndexOf() применяются в тех ситуациях, когда необходимо проверить, является ли некоторая последовательность символов частью строки. Такая необходимость может возникнуть, например, при проверке достоверности данных, введенных пользователем. Приведем простой пример: от пользователя требуется ввести адрес электронной почты а сценарий должен проверить корректность ввода (упрощенно): 
 +
 +Листинг: Пример применения метода 'indexOf()'  
 +<file php>
 +var email;
 +do {
 +    email = prompt ("Введите свой e-mail:","")
 +    if (email.indexOf("@") == -1) {
 +        alert ("Введенный e-mail синтаксически некорректен!\nПовторите операцию.");
 +    }
 +    else 
 +        break;
 +} while (true);
 +alert ("Спасибо за сотрудничество!");
 +</file>
 +Сценарий в бесконечном цикле запрашивает у пользователя ввод e-mail адреса и проверяет наличие в нем символа "@". Если таковой отсутствует, метод indexOf("@") вернет значение -1 и пользователь получит сообщение об ошибке, после чего запрос повторится. Цикл будет продолжаться до тех пор, пока пользователь не введет строку, содержащую символ "@". Совершенно очевидно, что проверка корректности адреса, введенного пользователем, не претендует на полноту и ее запросто можно обойти, введя при запросе символ "@"
 +
 +Еще один пример демонстрирует применение метода indexOf() с параметром "start". Пример позволяет вычислить вероятность появления некоторого символа (например - 'а') в произвольном тексте: 
 +
 +<file php>
 +var text="Карл у Клары украл кораллы, Клара у Карла украла кларнет.";
 +var count=0, start=0;
 +do {
 +    start=text.indexOf("а", start);
 +    if (start > 0) 
 +        count++;
 +} while (start > 0);
 +alert ("Символ 'а' всречается в строке с вероятностью "+count/text.length*100+"%");
 +</file>
 +===== Применение методов объекта String slice(), substring() и substr() =====
 +
 +Все три метода, как следует из таблицы, служат для получения части строки. Эти методы так же можно применить при проверке данных. Например, из адреса электронной почты пользователя необходимо выделить в отдельные строки логин пользователя (символы, находящиеся перед символом "@") и адрес почтового сервера (символы, находящиеся после символа "@") с целью их дальнейшей проверки. Упрощая ситуацию, проверим наличие "." в адресе почтового сервера и отсутствие "." в логине пользователя: 
 +
 +Листинг: Получение подстроки  
 +<file php>
 +var email;
 +do {
 +    email = prompt ("Введите свой e-mail:","username@host.com")
 +    var pos1 = email.indexOf("@");
 +    if (pos1 == -1) {
 +        alert ("Введенный e-mail синтаксически некорректен!\nПовторите операцию.");    
 +    }
 +    else {
 +        var userName = email.substring(0, pos1); 
 +        var host = email.slice(pos1+1); 
 +        
 +        if (userName.indexOf(".") != -1) 
 +            alert ("Введенный e-mail синтаксически некорректен!\nПовторите операцию.");
 +        else if (host.indexOf(".") == -1)
 +            alert ("Введенный e-mail синтаксически некорректен!\nПовторите операцию.");
 +        else 
 +            break;
 +    }    
 +} while (true);
 +alert ("Спасибо за сотрудничество!");
 +</file>
 +После такой доработки проверка стала значительно лучше, хотя она все еще не универсальна. Теперь пользователь должен вводить символы до "@" без точек, а символы после "@" обязательно должны содержать хотя бы одну точку. 
 +
 +===== Применение метода объекта String split() =====
 +
 +Метод split() можно с успехом применять для ввода массивов с клавиатуры. Ниже на примере демонстрируется одна из возможных реализаций этого подхода: 
 +
 +Листинг: Применение метода 'split()'  
 +<file php>
 +var s = prompt ("Введите несколько числовых значений, разделенных запятыми:", "1,2,5,0,3,7");
 +var a = s.split(",");
 +var sum=0;
 +for (var i=0; i<a.length; i++)
 +    sum+=parseInt(a[i]);
 +    
 +alert ("Сумма элементов введенного массива: "+sum);
 +</file>
 +
 +О функции split() необходимо сказать то, что она поддерживает регулярные выражения, к изучению которых мы вскоре приступим. Это означает, что вместо фиксированной строки-разделителя (например - ",") можно использовать шаблон, маску разделителя. В последнем случае сценарий станет намного эффективнее и универсальнее.
  

📌 Удобный подбор VPS по параметрам доступен на DIEGfinder.com - официальном инструменте проекта DIEG. Это часть единой экосистемы, созданной для того, чтобы помочь быстро найти подходящий VPS/VDS сервер для любых задач хостинга.

📌 Для тестирования скриптов, установщиков VPN и Python-ботов рекомендуем использовать надежные VPS на короткий срок. Подробнее о быстрой аренде VPS для экспериментов - читайте здесь.

💥 Подпишись в Телеграм 💥 и задай вопрос по сайтам и хостингам бесплатно!