Javascript: робота з рядками, функції
Об'єктно-орієнтовані можливості і асоціативні масиви jаvascript як семантичні «каркаси» використання функцій і конструкцій для обробки рядків представляють особливий інтерес для програмування процесів обробки інформації за її смислового змісту. На мові jаvascript функції роботи з рядками можна комбінувати власні смислові конструкції, спрощуючи код і формалізуючи предметну область завдання. У класичному варіанті обробка інформації - це, передусім, рядкові функції. Кожна функція і конструкція мови має свої особливості в синтаксис і семантику 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 робота з рядками може бути виведена за межі» синтаксису мови.
Тут представлені функції, які перевіряють, введення містить ціле число (schInt) або число речовий (schReal). Наступний приклад показує, наскільки ефективно обробляти рядки, перевіряючи їх на наявність тільки припустимих символів: schText - тільки текст, schMail - правильну адресу електронної пошти. Дуже важливо мати на увазі, що в 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) при роботі з масивами і рядками
Пошук і програмування не стільки синоніми, скільки друге без першого просто не має сенсу. Шукати і приймати рішення - основа будь-якого алгоритму,
Стек JavaScript push/pop
Стекова організація даних - одна з найдавніших в програмуванні. Останнім прийшов, першим пішов - просто ідеальна конструкція не тільки для
JavaScript, масиви: опис
jаvascript – сучасна мова програмування, він унікальний у частині синтаксису і семантики. Має специфіку...
Обробка рядків. Метод JavaScript replace()
Гіпертекст у форматі HTML, CSS, XML, власні варіанти рядкового подання інформації з сервера надходять ...
Javascript Array для збереження необмеженої кількості змінних
Логічно масив займає проміжне положення між змінними і об'єктами. Практично не слід надавати особливого значення словам. У програмі є змінні і код.
JavaScript: приклади застосування
jаvascript - сучасна мова програмування, без якого важко створити динамічний сайт, який привертає увагу. JS ідеально справляється з обробкою