Javascript - рядку - видалити подстроку з рядка js. JavaScript: методи роботи з рядками Конвертація в String

Існує кілька способів вибору подстрок в JavaScript, включаючи substring (), substr (), slice ()і функції regexp.

В JavaScript 1.0 і 1.1, substring ()існує як єдиний простий спосіб вибору частини більшої рядки. Наприклад, щоб вибрати рядок pressз Expression, використовуйте "Expression" .substring (2,7). Перший параметр для функції - символьний індекс, в якому починається вибір, в той час як другий параметр - символьний індекс, в якому закінчується вибір (що не включає): substring (2,7)включає індекси 2, 3, 4, 5, і 6.

В JavaScript 1.2, функції substr (), slice ()і regexpможуть також використовуватися для розбиття рядків.

Substr ()поводиться таким же чином, що і substrмови Перл, де перший параметр позначає символьний індекс, в якому починається вибір, в той час як другий параметр вказує довжину підрядка. Щоб виконати ту ж саму задачу, як в попередньому прикладі, потрібно використовувати "Expression" .substr (2,5). Пам'ятайте, 2 - це точка початку, а 5 - довжина виникає в результаті підрядка.

При використанні на рядках, slice ()поводиться аналогічно функції substring (). Це, однак, набагато більш потужний засіб, здатне функціонувати з будь-яким типом масиву, і не тільки з рядками. slice ()також використовує негативні зміщення для звернення до потрібної позиції, починаючи з кінця рядка. "Expression" .slice (2, -3)поверне подстроку, знайдену між другим символом і третім символом з кінця, повертаючи знову press.

Останній і найбільш універсальний метод для роботи з підрядками - це робота через регулярні функції вираження в JavaScript 1.2. Ще раз, звертаючи увагу на той же приклад, подстрока "Press"виходить з рядка "Expression":

Write ( "Expression" .match (/ press /));

вбудований об'єкт String

об'єкт Stringце об'єктна реалізація примітивного строкового значення. Його конструктор має вигляд:

New String ( значення?)

тут значеннябудь-рядковий вираз, що задає примітивне значення об'єкта. Якщо воно не вказано, то примітивне значення об'єкта одно "".

Властивості об'єкта String:

constructorКонструктор, який створив об'єкт. Кількість символів в рядку. prototypeПосилання на прототип класу об'єктів.

Стандартні методи об'єкта String

Повертає символ, що знаходиться в даній позиції рядка. Повертає код символу, що знаходиться в даній позиції рядка. Повертає конкатенацію рядків. Створює рядок з символів, заданих кодами Unicode. Повертає позицію першого входження заданого підрядка. Повертає позицію останнього входження заданого підрядка. Порівнює два рядки з урахуванням мови операційної системи. Зіставляє рядок з регулярним виразом. Зіставляє рядок з регулярним виразом і замінює знайдену підрядок нової підрядком. Шукає зіставлення рядки з регулярним виразом. Витягує частина рядка і повертає новий рядок. Розбиває рядок на масив підрядків. Повертає підрядок, задану позицією і довжиною. Повертає підрядок, задану початковій і кінцевій позиціями. Перетворює всі літери рядка в рядкові з урахуванням мови операційної системи. Перетворює всі літери рядка в прописні з урахуванням мови операційної системи. Перетворює всі літери рядка в рядкові. Перетворює об'єкт в рядок. Перетворює всі літери рядка в прописні. Повертає примітивне значення об'єкта.

Нестандартні методи об'єкта String

Створює закладку HTML ( …). Укладає рядок в теги …. Укладає рядок в теги …. Укладає рядок в теги …. Укладає рядок в теги …. Укладає рядок в теги …. Укладає рядок в теги …. Укладає рядок в теги …. Створює гіперпосилання HTML (). Укладає рядок в теги …. Укладає рядок в теги …. Укладає рядок в теги …. Укладає рядок в теги ….

властивість length

синтаксис : об'єкт.length атрибути: (DontEnum, DontDelete, ReadOnly)

значенням властивості lengthє кількість символів в рядку. Для порожнього рядка це значення дорівнює нулю.

метод anchor

синтаксис : об'єкт.anchor ( ім'я) аргументи: ім'я результат: Строкове значення

метод anchor об'єкта, Укладеного в теги …. Перевірки на те, чи не була вихідна рядок вже укладена в ці теги, не робиться. Цей метод використовується спільно з методами document.write і document.writeln для створення в HTML-документі закладки з заданим ім'ям. Наприклад, оператор document.write ( "Мій текст" .anchor ( "Закладка")) еквівалентний оператору document.write ( " Мій текст") .

метод big

синтаксис : об'єкт.big () результат: Строкове значення

метод bigповертає рядок, що складається з об'єкта, Укладеного в теги …. Перевірки на те, чи не була вихідна рядок вже укладена в ці теги, не робиться. Цей метод використовується спільно з методами document.write і document.writeln для відображення тексту крупним шрифтом. Наприклад, оператор document.write ( "Мій текст" .big ()) виведе на екран оглядача рядок Мій текст.

метод blink

синтаксис : об'єкт.blink () результат: Строкове значення

метод blinkповертає рядок, що складається з примітивного значення строкового об'єкта, Укладеного в теги …. Перевірки на те, чи не була вихідна рядок вже укладена в ці теги, не робиться. Цей метод використовується спільно з методами document.write і document.writeln для відображення тексту миготливим шрифтом. Зазначені теги не входять до стандарт HTML і підтримуються тільки оглядачами Netscape і WebTV. Наприклад, оператор document.write ( "Мій текст" .blink ()) виведе на екран оглядача рядок Мій текст.

метод bold

синтаксис : об'єкт.bold () результат: Строкове значення

метод boldповертає рядок, що складається з примітивного значення строкового об'єкта, Укладеного в теги …. Перевірки на те, чи не була вихідна рядок вже укладена в ці теги, не робиться. Цей метод використовується спільно з методами document.write і document.writeln для відображення тексту напівжирним шрифтом. Наприклад, оператор document.write ( "Мій текст" .bold ()) виведе на екран оглядача рядок Мій текст .

метод charAt

синтаксис : об'єкт.charAt ( позиція) аргументи: позиціябудь-який числовий вираз результат: Строкове значення

метод charAtповертає рядок, що складається з символу, розташованого в даній позиціїпримітивного значення строкового об'єкта. Позиції символів рядка нумеруються від нуля до об'єкт. -1. Якщо позиція лежить поза цього діапазону, то повертається порожній рядок. Наприклад, оператор document.write ( "Рядок" .charAt (0)) виведе на екран оглядача символ С.

метод charCodeAt

синтаксис : об'єкт.charCodeAt ( позиція) аргументи: позиціябудь-який числовий вираз результат: числове значення

метод charAtповертає число, що дорівнює коду Unicode символу, розташованого в даній позиціїпримітивного значення строкового об'єкта. Позиції символів рядка нумеруються від нуля до об'єкт. -1. Якщо позиція лежить поза цього діапазону, то повертається NaN. Наприклад, оператор document.write ( "Рядок" .charCodeAt (0) .toString (16)) виведе на екран оглядача шістнадцятковий код російської літери "С": 421.

метод concat

синтаксис : об'єкт.concat ( строка0, рядок1, …, строкаN) аргументи: строка0, рядок1, …, строкаNбудь-які рядкові вирази результат: Строкове значення

метод concatповертає новий рядок, що є конкатенацией вихідної рядки і аргументів методу. Цей метод еквівалентний операції

об'єкт + строка0 + рядок1 + … + строкаN

Наприклад, оператор document.write ( "Мороз і сонце." .Concat ( "День чудовий.")) Виведе на екран оглядача рядок Мороз і сонце. День чудовий.

метод fixed

синтаксис : об'єкт.fixed () результат: Строкове значення

метод fixedповертає рядок, що складається з примітивного значення строкового об'єкта, Укладеного в теги …. Перевірки на те, чи не була вихідна рядок вже укладена в ці теги, не робиться. Цей метод використовується спільно з методами document.write і document.writeln для відображення тексту телетайпних шрифтом. Наприклад, оператор document.write ( "Мій текст" .fixed ()) виведе на екран оглядача рядок Мій текст.

метод fontcolor

синтаксис : об'єкт.fontcolor (колір) аргументи: коліррядковий вираз результат: Строкове значення

метод fontcolorповертає рядок, що складається з примітивного значення строкового об'єкта, Укладеного в теги колір>…. Перевірки на те, чи не була вихідна рядок вже укладена в ці теги, не робиться. Цей метод використовується спільно з методами document.write і document.writeln для відображення тексту заданим кольором. Наприклад, оператор document.write ( "Мій текст" .fontcolor ( "red")) виведе на екран оглядача рядок Мій текст.

метод fontsize

синтаксис : об'єкт.fontsize ( розмір) аргументи: розмірчислове вираз результат: Строкове значення

метод fontsizeповертає рядок, що складається з примітивного значення строкового об'єкта, Укладеного в теги …. Перевірки на те, чи не була вихідна рядок вже укладена в ці теги, не робиться. Цей метод використовується спільно з методами document.write і document.writeln для відображення тексту шрифтом заданого розміру. Наприклад, оператор document.write ( "Мій текст" .fontsize (5)) виведе на екран оглядача рядок Мій текст.

метод fromCharCode

синтаксис : String.fromCharCode ( код1, код2, …, кодN) аргументи: код1, код2, …, кодNчислові вирази результат: Строкове значення

метод fromCharCodeстворює новий рядок (але не строковий об'єкт), яка є конкатенацией символів Unicode з кодами код1, код2, …, кодN.

Це статичний метод об'єкта String, Тому для доступу до нього не потрібно спеціально створювати строковий об'єкт. приклад:

Var s = String.fromCharCode (65, 66, 67); // s одно "ABC"

метод indexOf

синтаксис : об'єкт.indexOf ( подстрока[,початок]?) аргументи: подстрокабудь-рядковий вираз початокбудь-який числовий вираз результат: числове значення

метод indexOfповертає першу позицію подстрокив примітивному значенні строкового об'єкта. об'єкт початок початок початок початокбільше ніж об'єкт об'єкт

Пошук ведеться зліва направо. В іншому це метод ідентичний методу. Наступний приклад підраховує кількість входжень підрядка pattern в рядок str.

Function occur (str, pattern) (var pos = str.indexOf (pattern); for (var count = 0; pos! = -1; count ++) pos = str.indexOf (pattern, pos + pattern.length); return count ;)

метод italics

синтаксис : об'єкт.italics () результат: Строкове значення

метод italicsповертає рядок, що складається з примітивного значення строкового об'єкта, Укладеного в теги …. Перевірки на те, чи не була вихідна рядок вже укладена в ці теги, не робиться. Цей метод використовується спільно з методами document.write і document.writeln для відображення тексту курсивним шрифтом. Наприклад, оператор document.write ( "Мій текст" .italics ()) виведе на екран оглядача рядок Мій текст .

метод lastIndexOf

синтаксис : об'єкт.lastIndexOf ( подстрока[,початок]?) аргументи: подстрокабудь-рядковий вираз початокбудь-який числовий вираз результат: числове значення

метод lastIndexOfповертає останню позицію подстрокив примітивному значенні строкового об'єкта об'єкт. -1. Якщо заданий необов'язковий аргумент початок, То пошук ведеться, починаючи з позиції початок; якщо немає, то з позиції 0, т. е. з першого символу рядка. якщо початокнегативно, то воно приймається рівним нулю; якщо початокбільше ніж об'єкт. -1, то воно приймається рівним об'єкт. -1. Якщо об'єкт не містить даної підрядка, то повертається значення -1.

Пошук ведеться справа наліво. В іншому це метод ідентичний методу. приклад:

Var n = "Білий кит" .lastIndexOf ( "кит"); // n дорівнює 6

метод link

синтаксис : об'єкт.link ( uri) аргументи: uriбудь-рядковий вираз результат: Строкове значення

метод linkповертає рядок, що складається з примітивного значення строкового об'єкта, Укладеного в теги uri">. Перевірки на те, чи не була вихідна рядок вже укладена в ці теги, не робиться. Цей метод використовується спільно з методами document.write і document.writeln для створення в HTML-документі гіперпосилання із заданим uri. Наприклад, оператор document.write ( "Мій текст" .link ( "# Закладка")) еквівалентний оператору document.write ( "Мій текст").

метод localeCompare

синтаксис : об'єкт.localeCompare ( рядок1) аргументи: рядок1будь-рядковий вираз результат: число

підтримка

метод localeCompareпорівнює два рядки з урахуванням національних установок операційної системи. Він повертає -1, якщо примітивне значення об'єктаменше строкі1, +1, якщо воно більше строкі1, І 0, якщо ці значення збігаються.

метод match

синтаксис : об'єкт.match ( регвир) аргументи: регвир результат: Масив рядків

метод match регвир об'єкта. Результатом зіставлення є масив знайдених подстрок або null, Якщо відповідностей немає. При цьому:

  • якщо регвирне містить опцію глобального пошуку, то виконується метод регвир.exec(об'єкт) І повертається його результат. Результуючий масив містить в елементі з індексом 0 знайдену підрядок, а в інших елементах підрядка, відповідні подвираженія регвир, Укладеними в круглі дужки.
  • якщо регвирмістить опцію глобального пошуку, то метод регвир.exec(об'єкт) Виконується до тих пір, поки знаходяться відповідності. Якщо n кількість знайдених відповідностей, то результатом є масив з n елементів, які містять знайдені підрядка. властивості регвир.lastIndexприсвоюється номер позиції в заданій стрічці, який вказує на перший символ після останнього знайденого відповідності, або 0, якщо відповідностей, не знайдено.

Слід пам'ятати, що метод регвир.execзмінює властивості об'єкта регвир. приклади:

метод replace

синтаксис : об'єкт.replace ( регвир,рядок) об'єкт.replace ( регвир,функція) аргументи: регвир — регулярний виразрядок рядковий вираз функціяім'я функції або декларація функції результат: Новий рядок

метод replaceзіставляє регулярний вираз регвирз примітивним значенням строкового об'єктаі замінює знайдені подстроки іншими підрядками. Результатом є новий рядок, яка є копією вихідної рядки з проведеними замінами. Спосіб заміни визначається опцією глобального пошуку в регвирі типом другого аргументу.

якщо регвирне містить опцію глобального пошуку, то виконується пошук першої підрядка, відповідної регвирі проводиться її заміна. якщо регвирмістить опцію глобального пошуку, то виконується пошук всіх подстрок, відповідних регвир, І проводиться їх заміна.

рядок, То заміна кожної знайденої підрядка проводиться на неї. При цьому рядок може містити такі властивості об'єкта RegExp, Як $ 1,, $ 9, lastMatch, lastParen, leftContext і rightContext. Наприклад, оператор document.write ( "Смачні яблука, соковиті яблука.". Replace (/ яблука / g, "груші")) виведе на екран оглядача рядок Смачні груші, соковиті груші.

Якщо другим аргументом є функція, То заміна кожної знайденої підрядка проводиться викликом цієї функції. Функція має такі аргументи. Перший аргумент це знайдений підрядок, потім слідують аргументи, які відповідають усім подвираженія регвир, Укладеними в круглі дужки, передостанній аргумент це позиція знайденого підрядка в заданій стрічці, вважаючи з нуля, і останній аргумент це сама вихідна рядок. Наступний приклад показує, як за допомогою методу replaceможна написати функцію перетворення градусів Фаренгейта в градуси Цельсія. наведений сценарій

Function myfunc ($ 0, $ 1) (return (($ 1-32) * 5/9) + "C";) function f2c (x) (var s = String (x); return s.replace (/ (\ d + ( \. \ d *)?) F \ b /, myfunc);) document.write (f2c ( "212F"));

виведе на екран оглядача рядок 100C.

Слід пам'ятати, що цей метод змінює властивості об'єкта регвир.

Приклад використання replace

Заміна всіх входжень підрядка в рядок

Часто трапляється, що потрібно замінити всі входження одного рядка в інший рядок:

Var str = "foobarfoobar"; str = str.replace (/ foo / g, "xxx"); // в підсумку вийти str = "xxxbarxxxbar";

метод search

синтаксис : об'єкт.search ( регвир) аргументи: регвирбудь-який регулярний вираз результат: Числове вираз

метод searchзіставляє регулярний вираз регвирз примітивним значенням строкового об'єкта. Результатом зіставлення є позиція першої знайденої підрядка, вважаючи з нуля, або -1, якщо відповідностей немає. При цьому опція глобального пошуку в регвирігнорується, і властивості регвирне змінюються. приклади:

метод slice

синтаксис : об'єкт.slice ( початок [,кінець]?) аргументи: початокі кінецьбудь-які числові вирази результат: Новий рядок

метод slice об'єкта, Від позиції початокдо позиції кінець, Не включаючи її. якщо кінець початокі до кінця заданої стрічки.

Позиції символів рядка нумеруються від нуля до об'єкт. -1. якщо значення початок об'єкт. +початок. якщо значення кінецьнегативно, то воно замінюється на об'єкт. +кінець. Іншими словами, негативні аргументи трактуються як зміщення від кінця рядка.

Результатом є строкове значення, а не строковий об'єкт. Наприклад, оператор document.write ( "ABCDEF" .slice (2, -1)) виведе на екран оглядача рядок CDE.

метод small

синтаксис : об'єкт.small () результат: Строкове значення

метод smallповертає рядок, що складається з примітивного значення строкового об'єкта, Укладеного в теги …. Перевірки на те, чи не була вихідна рядок вже укладена в ці теги, не робиться. Цей метод використовується спільно з методами document.write і document.writeln для відображення тексту дрібним шрифтом. Наприклад, оператор document.write ( "Мій текст" .small ()) виведе на екран оглядача рядок Мій текст.

метод split

синтаксис : об'єкт.split ( роздільник [,число]?) аргументи: роздільникстрокове або регулярний вираз числочислове вираз результат: Масив рядків (об'єкт Array)

метод splitрозбиває примітивне значення об'єктана масив підрядків і повертає його. Розбиття на підрядка проводиться таким чином. Вихідна рядок проглядається зліва направо в пошуках роздільник. Як тільки він знайдений, подстрока від кінця попереднього роздільник (або від початку рядка, якщо це перше входження роздільник) до початку знайденого додається в масив підрядків. Таким чином, сам роздільник в текст підрядка не потрапляє.

необов'язковий аргумент числозадає максимально можливий розмір результуючого масиву. Якщо він заданий, то після виділення числаподстрок метод завершує роботу, навіть якщо перегляд початкового рядка не закінчений.

роздільникможе бути заданий або рядком, або регулярним виразом. Існує кілька випадків, що вимагають особливого розгляду:

У наступному прикладі регулярний вираз використовується для завдання тегів HTMLяк роздільник. оператор

виведе на екран оглядача рядок Текст, напівжирний, і, курсивний.

метод strike

синтаксис : об'єкт.strike () результат: Строкове значення

метод strikeповертає рядок, що складається з примітивного значення строкового об'єкта, Укладеного в теги …. Перевірки на те, чи не була вихідна рядок вже укладена в ці теги, не робиться. Цей метод використовується спільно з методами document.write і document.writeln для відображення тексту перекресленим шрифтом. Наприклад, оператор document.write ( "Мій текст" .strike ()) виведе на екран оглядача рядок Мій текст.

метод sub

синтаксис : об'єкт.sub () результат: Строкове значення

метод subповертає рядок, що складається з примітивного значення строкового об'єкта, Укладеного в теги …. Перевірки на те, чи не була вихідна рядок вже укладена в ці теги, не робиться. Цей метод використовується спільно з методами document.write і document.writeln для відображення тексту як нижнього індексу. Наприклад, оператор document.write ( "Мій текст" .sub ()) виведе на екран оглядача рядок Мій текст.

метод substr

синтаксис : об'єкт.substr ( позиція [,довжина]?) аргументи: позиціяі довжиначислові вирази результат: Строкове значення

метод substrповертає підрядок примітивного значення строкового об'єкта, Що починається з даної позиціїі містить довжинасимволів. якщо довжинане задана, то повертається підрядок, починаючи з даної позиціїі до кінця заданої стрічки. якщо довжинанегативна або дорівнює нулю, то повертається порожній рядок.

Позиції символів рядка нумеруються від нуля до об'єкт. -1. якщо позиціябільше або дорівнює об'єкт., То повертається порожній рядок. якщо позиціянегативна, то вона трактується як зміщення від кінця рядка, т. е. замінюється на об'єкт.+позиція.

Примітка. якщо позиціянегативна, то Internet Explorerпомилково замінює її на 0, тому в цілях сумісності цей варіант використовувати не слід.

Var src = "abcdef"; var s1 = src.substr (1, 3); // "bcd" var s2 = src.substr (1); // "bcdef" var s3 = src.substr (-1); // "f", але в MSIE: "abcdef"

метод substring

синтаксис : об'єкт.substring ( початок [,кінець]) аргументи: початокі кінецьчислові вирази результат: Строкове значення

метод substringповертає підрядок примітивного значення строкового об'єкта, Від позиції початокдо позиції кінець, Не включаючи її. якщо кінецьне заданий, то повертається підрядок, починаючи з позиції початокі до кінця заданої стрічки.

Позиції символів рядка нумеруються від нуля до об'єкт. -1. Негативні аргументи або рівні NaNзамінюються на нуль; якщо аргумент більше довжини вихідного рядка, то він замінюється на неї. якщо початокбільше кінця, То вони міняються місцями. якщо початокодно кінця, То повертається порожній рядок.

Результатом є строкове значення, а не строковий об'єкт. приклади:

Var src = "abcdef"; var s1 = src.substring (1, 3); // "bc" var s2 = src.substring (1, -1); // "a" var s3 = src.substring (-1, 1); // "a"

метод sup

синтаксис : об'єкт.sup () результат: Строкове значення

метод supповертає рядок, що складається з примітивного значення строкового об'єкта, Укладеного в теги …. Перевірки на те, чи не була вихідна рядок вже укладена в ці теги, не робиться. Цей метод використовується спільно з методами document.write і document.writeln для відображення тексту як верхнього індексу. Наприклад, оператор document.write ( "Мій текст" .sup ()) виведе на екран оглядача рядок Мій текст.

метод toLocaleLowerCase

синтаксис : об'єкт.toLocaleLowerCase () результат: Новий рядок

підтримка: Internet Explorer Підтримується з версії 5.5. Netscape Navigator Чи не підтримується.

метод toLocaleLowerCaseповертає новий рядок, в якій всі букви вихідної рядки замінені на рядкові з урахуванням національних установок операційної системи. Решта символів початкового рядка не змінюються. Вихідна рядок залишається колишньою. Зазвичай цей метод повертає той же результат, що і; відміну можливо тільки в тому випадку, якщо кодування мови суперечить правилам Unicode по перетворенню великих літер в рядкові.

метод toLocaleUpperCase

синтаксис : об'єкт.toLocaleUpperCase () результат: Новий рядок

підтримка: Internet Explorer Підтримується з версії 5.5. Netscape Navigator Чи не підтримується.

метод toLocaleUpperCaseповертає новий рядок, в якій всі букви вихідної рядки замінені на прописні з урахуванням національних установок операційної системи. Решта символів початкового рядка не змінюються. Вихідна рядок залишається колишньою. Зазвичай цей метод повертає той же результат, що і; відміну можливо тільки в тому випадку, якщо кодування мови суперечить правилам Unicode по перетворенню малих літер в прописні.

метод toLowerCase

синтаксис : об'єкт.toLowerCase () результат: Новий рядок

метод toLowerCaseповертає новий рядок, в якій всі букви вихідної рядки замінені на рядкові. Решта символів початкового рядка не змінюються. Вихідна рядок залишається колишньою. Наприклад, оператор document.write ( "об'єкт String" .toLowerCase ()) виведе на екран оглядача рядок об'єкт string.

Коли я пишу на javascript, то доводиться часто звертатися до пошуковим системам, З метою уточнити синтаксис методів (і порядок, визначення аргументів) працюють з рядками.

У цій статті я постараюся навести приклади і опис найбільш поширених методів javascript пов'язаних з рядками. Найбільш популярні методи для зручності розташовані у верхній частині статті.

Перетворюємо в рядок

Ви можете перетворити число, логічне значення або об'єкт в рядок.

Var myNumber = 24; // 24 var myString = myNumber.toString (); // "24"

Ви також можете зробити подібну маніпуляцію за допомогою функції string ().

Var myNumber = 24; // 24 var myString = String (myNumber); // "24"

Ніколас Закас каже: "Якщо ви не впевнені в значенні (null або undefined), то потрібно скористатися функцією String (), так як вона повертає рядок в незалежності від типу змінної".

undefinedозначає, що змінної не присвоєно ніякого значення, a null, - що їй присвоєно пусте значення (можна сказати, що null визначається, як порожній об'єкт).

Розбиваємо рядок на підрядка

Щоб розбити рядок на масив з подстрок ви можете використовувати метод split ():

Var myString = "coming, apart, at, the, commas"; var substringArray = myString.split ( ","); // [ "coming", "apart", "at", "the", "commas"] var arrayLimited = myString.split ( ",", 3); // [ "coming", "apart", "at"]

Як випливає з останнього рядка, значення другого необов'язкового аргументу визначає кількість елементів у повертається масиву.

Отримати довжину рядка

За допомогою властивості length ви можете знайти число Юнікодние символів в рядку:

Var myString = "You" re quite a character. "; Var stringLength = myString.length; // 25

Визначаємо подстроку в рядку

Є два способи здійснити задумане:

Використовувати indexOf ():

Var stringOne = "Johnny Waldo Harrison Waldo"; var wheresWaldo = stringOne.indexOf ( "Waldo"); // 7

Метод indexOf () шукає підрядок (перший передається аргумент) в рядку (від початку рядка) і повертає позицію першого символу, з якого почалося входження підрядка в рядок.

Використовувати lastIndexOf ():

Var stringOne = "Johnny Waldo Harrison Waldo"; var wheresWaldo = stringOne.lastIndexOf ( "Waldo"); // 22

Метод lastIndexOf () робить все те ж саме, за винятком того, що він шукає останню подстроку по входженню в рядок.

У разі, якщо підрядок не знайдено обидва методи повертають -1. Другий необов'язковий аргумент вказує на позицію в рядку, з якої ви хочете почати пошук. Так, якщо для методу indexOf () другий аргумент дорівнює 5, то пошук почнеться з 5-го символу, а 0-4 символи будуть проігноровані. Для lastIndexOf (), також якщо другий аргумент дорівнює 5, пошук почнеться в зворотному напрямку, причому символи від 6-го і вище будуть проігноровані.

Як замінити частину рядка

Щоб замінити частину (або навіть всю) рядки використовуйте метод replace ().

Var slugger = "Josh Hamilton"; var betterSlugger = slugger.replace ( "h Hamilton", "e Bautista"); console.log (betterSlugger); // "Jose Bautista"

У першому аргументі міститься та частина підрядка, яка підлягає заміні; другий аргумент - це той рядок, яка постане на місце замінної підрядка. Буде замінено лише перший екземпляр підрядка.

Щоб замінити всі входження підрядка, використовуйте регулярний вираз c прапором "g".

Var myString = "She sells automotive shells on the automotive shore"; var newString = myString.replace (/ automotive / g, "sea"); console.log (newString); // "She sells sea shells on the sea shore"

Другий аргумент може включати замінюється подстроку або функцію.

Знайти символ по заданій позиції

Щоб з'ясувати який символ стоїть в заданій позиції, ви можете використовувати метод charAt ():

Var myString = "Birds of a Feather"; var whatsAtSeven = myString.charAt (7); // "f"

Як це часто буває в javascript, перша позиція веде свій відлік з 0, а не з 1.

Як альтернативу ви можете використовувати метод charCodeAt (), однак замість самого символу ви отримаєте його код.

Var myString = "Birds of a Feather"; var whatsAtSeven = myString.charCodeAt (7); // "102" var whatsAtEleven = myString.charCodeAt (11); // "70"

Відзначте, що код для великої літери (позиція 11) відрізняється від коду тієї ж букви, але в малому регістрі (позиція 7).

Конкатенация строк в javascript

За великої частини для конкатенації рядків ви будете використовувати оператор (+). Але ви також можете об'єднати рядки, використовуючи метод concat ().

Var stringOne = "Knibb High football"; var stringTwo = stringOne.concat ( "rules."); // "Knibb High football rules"

У concat () можна передати безліч рядків, причому в результуючому рядку вони будуть розташовані в порядку їх додавання в метод concat ().

Var stringOne = "Knibb"; var stringTwo = "High"; var stringThree = "football"; var stringFour = "rules."; var finalString = stringOne.concat (stringTwo, stringThree, stringFour); console.log (finalString); // "Knibb high football rules."

Частина рядка (витягти підрядок в javascript)

є три різні способистворити новий рядок, "висмикнувши" частина підрядка з уже наявною рядки.

Використовуючи slice ():

Var stringOne = "abcdefghijklmnopqrstuvwxyz"; var stringTwo = stringOne.slice (5, 10); // "fghij"

Використовуючи substring ():

Var stringOne = "abcdefghijklmnopqrstuvwxyz"; var stringTwo = stringOne.substring (5, 10); // "fghij"

Для обох (slice () і substring ()) методів перший аргумент - це позиція символу, з якого починається підрядок (відлік ведеться з 0), другий аргумент - це позиція символу, на якому подстрока закінчується, причому символ, позначений у другому аргументі, не включається до возвращаемую подстроку.

Використовуючи substr ():

Var stringOne = "abcdefghijklmnopqrstuvwxyz"; var stringTwo = stringOne.substr (5, 10); // "fghijklmno"

Для методу substr перший аргумент також визначає позицію символу, з якого починається підрядок. Другий аргумент є необов'язковим. Але в той же час другий аргумент визначає кількість символів, які повинні бути включені в подстроку, починаючи з позиції, яку ми вже визначили в першому аргументі. Дана методика добре проілюстрована на прикладі вище.

Перетворення рядка в нижній або верхній регістр на javascript

Є чотири методи зробити необхідні перетворення. Два для перетворення символів рядка в верхній регістр.

Var stringOne = "Speak up, I can" t hear you. "; Var stringTwo = stringOne.toLocaleUpperCase (); //" SPEAK UP, I CAN "T HEAR YOU" var stringThree = stringOne.toUpperCase (); // "SPEAK UP, I CAN" T HEAR YOU "

І два для перетворення рядка в нижній регістр:

Var stringOne = "YOU DON" T HAVE TO YELL "; var stringTwo = stringOne.toLocaleLowerCase (); //" you don "t have to yell" var stringThree = stringOne.toLowerCase (); // "you don" t have to yell "

Як правило, немає різниці між locale-методом і не-locale-методом, проте "для деяких мов, наприклад для турецького, у яких регістр символів не слід встановленому регістру в системі Unicode, наслідки застосування не-locale-методу можуть бути різними". Тому дотримуйтесь наступним правилом: "якщо ви не знаєте мови, в якому буде працювати код, безпечніше використовувати locale-методи".

Відповідність шаблоном в javascript

Перевірити наявність шаблону в рядку можна за допомогою 2-х методів.

Метод match () викликається в об'єкта string, як аргумент методу match () передається регулярний вираз.

Var myString = "How much wood could a wood chuck chuck"; var myPattern = /.ood/; var myResult = myString.match (myPattern); // [ "wood"] var patternLocation = myResult.index; // 9 var originalString = myResult.input // "How much wood could a wood chuck chuck"

І exec () метод викликається у RegExp об'єкта, як аргумент передається рядок:

Var myString = "How much wood could a wood chuck chuck"; var myPattern = /.huck/; var myResult = myPattern.exec (myString); // [ "chuck"] var patternLocation = myResult.index; // 27 var originalString = myResult.input // "How much wood could a wood chuck chuck"

Обидва методи повертають перший збіглося входження. Якщо збіги не знайдені буде повернуто NULL. Якщо у регулярного виразу присутній прапор "g", то в якості результату буде повернутий масив, що містить всі збіги.

Ви також можете використовувати метод search (), який в якості аргументу приймає регулярний вираз і повертає початкову позицію першого співпала шаблону.

Var myString = "Assume"; var patternLocation = myString.search (/ ume /); // 3

Якщо збігів, не знайдено, метод поверне -1.

Порівняння двох рядків для подальшого сортування

Щоб порівняти два рядки в залежності від порядку сортування в мовному стандарті, ви можете використовувати метод localeCompare. Метод localeCompare повертає три можливих значення.

MyString = "chicken"; var myStringTwo = "egg"; var whichCameFirst = myString.localeCompare (myStringTwo); // -1 (except Chrome, which returns -2) whichCameFirst = myString.localeCompare ( "chicken"); // 0 whichCameFirst = myString.localeCompare ( "apple"); // 1 (Chrome returns 2)

Як показано вище, буде повернуто негативне значення, якщо оригінальна рядок при сортуванні виявляється перед строковим аргументом, якщо строкової аргумент при сортуванні виявляється після оригінальна рядки, повертається значення +1. Якщо повертається нульове значення, два рядки еквівалентні.

коли пишеш JavaScript, Дуже часто доводиться лазити по інтернету в пошуках інформації про синтаксис і параметрах для методів, які працюють з рядками.

Я прочитав безліч статей по роботі з рядками. У даній статті буде показано приклади і нам інформацію про те найбільш поширених методів по роботі з рядками. Я спробував поставити найчастіші методи в верхній частині для швидкого ознайомлення.

Звичайно, більшість досвідчених розробників вже досить знайомі з багатьма з методів, але я думаю, що це хороший списокдля початківців, щоб розуміти спектр методів, які можуть допомогти виконати складні операції простими засобами.

Конвертація в String

Ви можете конвертувати число, логічне вираз або об'єкт в рядок:

Var myNumber = 24; // 24 var myString = myNumber.toString (); // "24"

Ви можете зробити це так само за допомогою String ():

Var myNumber = 24; // 24 var myString = String (myNumber); // "24"

Якщо ви не впевнені, що значення не є nullабо undefined, Ви можете використовувати String (), Яка завжди повертає рядок, незалежно від типу значення.

Поділ рядки в подстроки

Щоб розділити рядки в масив підрядків, ви можете використовувати метод split ():

Var myString = "coming, apart, at, the, commas"; var substringArray = myString.split ( ","); // [ "coming", "apart", "at", "the", "commas"] var arrayLimited = myString.split ( ",", 3); // [ "coming", "apart", "at"]

Як видно в останньому рядку, другий параметр функції - це ліміт кількості елементів, яке буде в підсумковому масиві.

Отримання довжини рядка

Щоб знайти, скільки символів в рядки, ми використовуємо властивість length:

Var myString = "You" re quite a character. "; Var stringLength = myString.length; // 25

Пошук підрядка в рядку

Є два методи для пошуку підрядка:

Використання indexOf ():

Var stringOne = "Johnny Waldo Harrison Waldo"; var wheresWaldo = stringOne.indexOf ( "Waldo"); // 7

indexOf ()метод починає пошук підрядка з початку рядка, і повертає позицію початку першого входження підрядка. В даному випадку - 7 позиція.

Використання lastIndexOf ():

Var stringOne = "Johnny Waldo Harrison Waldo"; var wheresWaldo = stringOne.lastIndexOf ( "Waldo"); // 22

Метод повертає початкову позицію останнього входження підрядка в рядок.

В обох методах, якщо підрядок не знайдено, повертається значення -1, і обидва приймають необов'язковий другий аргумент, який вказує положення в рядку, де ви хочете почати пошук. Таким чином, якщо другий аргумент «5», indexOf ()починає пошук з 5 символу, ігноруючи символи 0-4, в той час як lastIndexOf ()починає пошук з символу 5 і йде в зворотному напрямку, ігноруючи символи 6 і далі.

заміна підрядка

Щоб замінити входження підрядка в рядку на іншу подстроку, ви можете використовувати replace ():

Var slugger = "Josh Hamilton"; var betterSlugger = slugger.replace ( "h Hamilton", "e Bautista"); console.log (betterSlugger); // "Jose Bautista"

Перший аргумент - те, що ви хочете замінити і другий аргумент - новий рядок. Функція замінює тільки перше входження підрядка в рядок.

Щоб замінити всі входження, потрібно використовувати регулярний вираз з глобальним прапором:

Var myString = "She sells automotive shells on the automotive shore"; var newString = myString.replace (/ automotive / g, "sea"); console.log (newString); // "She sells sea shells on the sea shore"

Другий аргумент може включати спеціальний шаблон або функцію. Детальніше можна почитати.

Отримати символ по заданій позиції в рядку

Отримати символ ми можемо за допомогою функції charAt ():

Var myString = "Birds of a Feather"; var whatsAtSeven = myString.charAt (7); // "f"

Як часто буває в JavaScript, перша позиція в рядку починається з 0, а не з 1.

В якості альтернативної функції можна використовувати charCodeAt ()функцію, яка код символу.

Var myString = "Birds of a Feather"; var whatsAtSeven = myString.charCodeAt (7); // "102" var whatsAtEleven = myString.charCodeAt (11); // "70"

Зауважте, що код для символу «F» (11 позиція) інший, ніж у символу «f» (позиція 7).

з'єднання рядків

У більшості випадком, щоб з'єднати рядки, можна використовувати оператор «+». Але так само можна використовувати метод concat ():

Var stringOne = "Knibb High football"; var stringTwo = stringOne.concat ( "rules."); // "Knibb High football rules"

Таким способом ми можемо поєднати безліч рядків в одну в тому порядку, в якому вони записані:

Var stringOne = "Knibb"; var stringTwo = "High"; var stringThree = "football"; var stringFour = "rules."; var finalString = stringOne.concat (stringTwo, stringThree, stringFour); console.log (finalString); // "Knibb high football rules."

витяг подстроки

Є 3 способи отримання рядка з частини іншого рядка:

використовуючи slice ():

Var stringOne = "abcdefghijklmnopqrstuvwxyz"; var stringTwo = stringOne.slice (5, 10); // "fghij"

використовуючи substring ():

Var stringOne = "abcdefghijklmnopqrstuvwxyz"; var stringTwo = stringOne.substring (5, 10); // "fghij"

В обох функція перший параметр - символ, з якого починає подстрока (починаючи з 0 позиції) і другий аргумент (необов'язковий) - позиція символу, до якого повертається підрядок. У прикладі (5, 10) повертається рядок між позицією 5 і 9.

використовуючи substr ():

Var stringOne = "abcdefghijklmnopqrstuvwxyz"; var stringTwo = stringOne.substr (5, 10); // "fghijklmno"

Перший аргумент - позиція символу, з якого починається новий рядок і другий аргумент - кількість символів від початкової позиції нового рядка. Тобто (5, 10) повертає 10 символів, починаючи з 5 позиції.

Переклад рядка в верхній або нижній регістр.

Є 4 методу для перекладу. Перші 2 переводять рядок у верхній регістр:

Var stringOne = "Speak up, I can" t hear you. "; Var stringTwo = stringOne.toLocaleUpperCase (); //" SPEAK UP, I CAN "T HEAR YOU" var stringThree = stringOne.toUpperCase (); // "SPEAK UP, I CAN" T HEAR YOU "

Інші 2 переводять рядок в нижній регістр:

Var stringOne = "YOU DON" T HAVE TO YELL "; var stringTwo = stringOne.toLocaleLowerCase (); //" you don "t have to yell" var stringThree = stringOne.toLowerCase (); // "you don" t have to yell "

Краще використовувати «locale» методи, тому що в різних місцях, наприклад, в Туреччині відображення регістрів працює не зовсім так, як ми звикли і тому результат може бути той, який ми хотіли. Якщо використовувати «locale» методи, то таких проблем не буде.

Pattern Matching

Відповідність за шаблоном в рядку може бути використано за допомогою 2-х методів, які працюють по-різному.

метод match ()застосовується до рядка і він приймає як параметр регулярний вираз:

Var myString = "How much wood could a wood chuck chuck"; var myPattern = /.ood/; var myResult = myString.match (myPattern); // [ "wood"] var patternLocation = myResult.index; // 9 var originalString = myResult.input // "How much wood could a wood chuck chuck"

метод exec ()застосовується до об'єкта регулярного виразу і приймає як параметр рядок:

Var myString = "How much wood could a wood chuck chuck"; var myPattern = /.huck/; var myResult = myPattern.exec (myString); // [ "chuck"] var patternLocation = myResult.index; // 27 var originalString = myResult.input // "How much wood could a wood chuck chuck"

В обох методах повертається лише перший збіг. Якщо збігів не було - повертається null.

Так само можна використовувати метод search (), Який приймає регулярний вираз і повертає позицію першого збігу за шаблоном:

Var myString = "Assume"; var patternLocation = myString.search (/ ume /); // 3

Якщо збігів не було - повертається « -1 «.

Порівняння двох рядків для сортування

Ви можете порівняти 2 рядки, щоб визначити, яка з них йде перша за алфавітом. Для цього скористаємося методом localeCompare (), Який повертає 3 можливих значення:

Var myString = "chicken"; var myStringTwo = "egg"; var whichCameFirst = myString.localeCompare (myStringTwo); // -1 (Chrome returns -2) whichCameFirst = myString.localeCompare ( "chicken"); // 0 whichCameFirst = myString.localeCompare ( "apple"); // 1 (Chrome returns 2)

Як було показано вище, негативне число повертається, якщо строковий аргумент йде після початкового рядка. Позитивне число, якщо строковий аргумент йде раніше заданої стрічки. якщо повернувся 0 - значить рядки рівні.

Для перевірки значення, що повертається краще використовувати if (result< 0), чем if (result === -1). Последнее не будет работать в Chrome.

Дякую за увагу, сподіваюся, що ви дізналися багато нового і цікавого!

Автор статті: Alex. Категорія:
Дата публікації: 19.03.2013
Сподобалася стаття? Поділіться з друзями!