Новини високих технологій
» » Javascript: робота з рядками, функції

Javascript: робота з рядками, функції

15-11-2017, 14:57
2 057
Об'єктно-орієнтовані можливості і асоціативні масиви jаvascript як семантичні «каркаси» використання функцій і конструкцій для обробки рядків представляють особливий інтерес для програмування процесів обробки інформації за її смислового змісту. На мові jаvascript функції роботи з рядками можна комбінувати власні смислові конструкції, спрощуючи код і формалізуючи предметну область завдання.
У класичному варіанті обробка інформації - це, передусім, рядкові функції. Кожна функція і конструкція мови має свої особливості в синтаксис і семантику jаvascript. Методи роботи з рядками тут мають свій стиль, але в звичайному застосуванні це просто синтаксис в межах простий семантики: пошук, заміна, вставка, вилучення, контенкация, зміна регістру


Опис рядкових змінних

Для оголошення рядка використовується конструкція var. Можна відразу задати її значення або формувати його в ході виконання алгоритму. Для рядка можна використовувати одинарні або подвійні лапки. Якщо в ній повинна бути лапки, її необхідно екранувати символом «». Рядок, позначений подвійними лапками, вимагає екранування внутрішніх подвійних лапок. Аналогічно та, що зазначена одинарними, критична до наявності всередині одинарних лапок.
В даному прикладі в рядку «str_dbl» перераховані корисні спеціальні символи, які можна використовувати в рядку. При цьому сам символ «» екранований.

Рядок - це завжди масив

Робота jаvascript з рядками може виконуватися безліччю способів. Синтаксис мови надає багато варіантів. В першу чергу ніколи не слід забувати, що (в контексті зроблених описів):


str_isV[3]=> «V»; str_chr[1]=> «'»; str_dbl[5]=> «a». Тобто символи рядка доступні як елементи масиву, при цьому кожен спеціальний символ - це один символ. Екранування - це елемент синтакиса. В реальну рядок ніякої «екран» не поміщається. Використання функції charAt() дає аналогічний ефект: str_isV.charAt(3) => «V»; str_chr.charAt(1) => «'»; str_dbl.charAt(5) => «a». Програміст може використовувати будь-який варіант.

Основні рядкові функції

В jаvascript робота з рядками виконана дещо інакше, ніж в інших мовах. Ім'я змінної (або безпосередньо рядка) через точку записується ім'я функції. Зазвичай рядкові функції називають методами в стилі синтаксису мови, але перше слово звичніше.
Найважливіший метод рядка (правильніше - властивість) - її довжина. var xStr = str_isV.length + '/' + str_chr.length + '/' + str_dbl.length. Результат: 11/12/175 по рядках наведеного вище опису. Найважливіша рядкова пара функцій - поділ рядка на масив елементів і злиття масиву в рядок: split(s[, l]); join(s). У першому випадку рядок розбивається за символом-роздільником «s» на масив елементів, в якому кількість елементів не перевищує значення «l». Якщо кількість не задано, то розбивається весь рядок.
У другому випадку масив елементів зливається в один рядок через заданий роздільник. Прикметна особливість даної пари: розбиття можна здійснювати за одним роздільником, а злиття - з іншого. У цьому контексті В jаvascript робота з рядками може бути виведена за межі» синтаксису мови.

Класичні рядкові функції

Загальні функції обробки рядків: пошук; вибірка; заміна; перетворення. Представлені методами: indexOf(), lastIndexOf(), substr(), substring(), toLowerCase(), toUpperCase(), concan(), charCodeAt() та іншими.
В jаvascript робота з рядками представлена безліччю функцій, але вони дублюють один одного, або залишені для старих алгоритмів і сумісності. Наприклад, використання методу concat() припустимо, але простіше написати: str = str1 + str2 + str3; Застосування функції charAt() теж має сенс, а ось застосування charCodeAt() має реальне практичне значення. Аналогічно, для jаvascript перенесення рядка має особливий сенс: у контексті виведення на екран, наприклад, у повідомленні alert() - це «n», в конструкції формування контенту сторінки це « ». У першому випадку це просто символ, а в другому - рядок символів.

Рядки і регулярні вирази

В jаvascript робота з рядками включає в себе механізм регулярних виразів. Це дозволяє виконувати всередині браузера складні пошуки, вибірки і перетворення рядків без звернення до сервера.
Метод match знаходить, а replace замінює знайдене збіг потрібним значенням. Регулярні вирази реалізовані в jаvascript на високому рівні, по суті своїй, є складними, а зважаючи на специфіку застосування переносять центр ваги з сервера в браузер клієнта.
При застосуванні методів match, search і replace слід не тільки приділити належну увагу тестування на всьому спектрі допустимих значень вихідних параметрів і шуканих рядків, але і оцінити навантаження на браузер.

Приклади регулярних виразів

Область застосування регулярних виразів для обробки рядків обширна, але вимагає великої акуратності і уважності від розробника. В першу чергу регулярки знаходять застосування при тестуванні введення користувача в полях форм.
Тут представлені функції, які перевіряють, введення містить ціле число (schInt) або число речовий (schReal). Наступний приклад показує, наскільки ефективно обробляти рядки, перевіряючи їх на наявність тільки припустимих символів: schText - тільки текст, schMail - правильну адресу електронної пошти.
Дуже важливо мати на увазі, що в jаvascript символи та рядки вимагають підвищеної уваги до локалі, особливо коли потрібно працювати з кирилицею. У багатьох випадках доцільно вказувати реальні коди символів, ніж їх значення. Російських букв це стосується в першу чергу.
Слід особливо відзначити, що далеко не завжди слід виконувати завдання, як вона поставлена. Зокрема, щодо перевірки цілих чисел і речових: можна обійтися не класичними малими методами, а звичайними конструкціями синтаксису.

Об'єктно-орієнтовані рядка

В jаvascript робота з рядками представлена широким асортиментом функцій. Але це не є вагомою підставою для використання їх в первозданному вигляді. Синтаксис і якість функцій бездоганні, але це універсальне рішення. Будь-яке застосування рядкових функцій передбачає обробку реального сенсу, який визначається за даними, областю застосування, конкретним призначенням алгоритму.
Ідеальне рішення завжди полягає у тому, щоб інтерпретувати дані за їх змістом. Представляючи кожен параметр у вигляді об'єкта, можна сформулювати функції для роботи з ним. Завжди мова йде про обробку символів: числа рядка - це конкретним чином організовані послідовності символів. Є загальні алгоритми, а є приватні. Наприклад, прізвище або номер будинку - це рядки, але якщо в першому випадку допустимі тільки російські букви, то в другому випадку допустимі цифри, російські букви і можуть зустрічатися дефіси або індекси через похилу риску. Індекси можуть бути літерними або цифровими. Будинок може мати корпусу. Всі ситуації не завжди можна передбачити. Це важливий момент у програмуванні. Рідкісний алгоритм не вимагає доопрацювання, а в більшості випадків доводиться систематично коригувати функціонал.
Формалізація оброблюваної рядкової інформації у вигляді об'єкта покращує читабельність коду, дозволяє вивести його на рівень смислової обробки. Це інша ступінь функціональності і значно кращу якість коду при більшій надійності розробленого алгоритму.
Цікаво по темі
Використання indexOf (JavaScript) при роботі з масивами і рядками
Використання indexOf (JavaScript) при роботі з масивами і рядками
Пошук і програмування не стільки синоніми, скільки друге без першого просто не має сенсу. Шукати і приймати рішення - основа будь-якого алгоритму,
Стек JavaScript push/pop
Стек JavaScript push/pop
Стекова організація даних - одна з найдавніших в програмуванні. Останнім прийшов, першим пішов - просто ідеальна конструкція не тільки для
JavaScript, масиви: опис
JavaScript, масиви: опис
jаvascript – сучасна мова програмування, він унікальний у частині синтаксису і семантики. Має специфіку...
Обробка рядків. Метод JavaScript replace()
Обробка рядків. Метод JavaScript replace()
Гіпертекст у форматі HTML, CSS, XML, власні варіанти рядкового подання інформації з сервера надходять ...
Javascript Array для збереження необмеженої кількості змінних
Javascript Array для збереження необмеженої кількості змінних
Логічно масив займає проміжне положення між змінними і об'єктами. Практично не слід надавати особливого значення словам. У програмі є змінні і код.
JavaScript: приклади застосування
JavaScript: приклади застосування
jаvascript - сучасна мова програмування, без якого важко створити динамічний сайт, який привертає увагу. JS ідеально справляється з обробкою