Справочник по методам строковых JavaScript

  1. Преобразовать в строку
  2. Разбить строку на несколько подстрок
  3. Получить длину строки
  4. Найдите подстроку в строке
  5. Заменить подстроку
  6. Найти персонажа в заданной позиции
  7. Конкатенация нескольких строк
  8. Нарезать строку (извлечь подстроку)
  9. Преобразовать строку в верхний или нижний регистр
  10. Сопоставление с образцом
  11. Сравнить две строки для сортировки
  12. Дальнейшее чтение

При написании JavaScript я часто нахожу себя в поиске информации или использую   Ссылка Mozilla   чтобы найти точный синтаксис и определения аргументов для методов, связанных со строковыми манипуляциями При написании JavaScript я часто нахожу себя в поиске информации или использую Ссылка Mozilla чтобы найти точный синтаксис и определения аргументов для методов, связанных со строковыми манипуляциями.

Многие ссылки, с которыми я сталкиваюсь, содержат слишком много информации, поэтому в этом посте будут приведены примеры и краткие описания некоторых из наиболее распространенных и полезных методов, связанных со строками. Я попытался поместить самые распространенные из них сверху, для быстрого ознакомления.

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

Преобразовать в строку

Вы можете преобразовать число, логическое значение или объект в строку:

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

Как указано в комментариях, вы также можете сделать это с помощью String ():

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

Николас Закас, в Профессиональный JavaScript для веб-разработчиков , говорит: «Если вы не уверены, что значение не является нулевым или неопределенным, вы можете использовать функцию приведения String (), которая всегда возвращает строку независимо от типа значения».

Разбить строку на несколько подстрок

Чтобы разделить строку на массив подстрок, вы можете использовать метод split ():

var myString = "разделяющие запятые"; var substringArray = myString.split (","); // ["ближайшие", "врозь", "в", "the", "запятые"] var arrayLimited = myString.split (",", 3); // ["идет", "врозь", "в"]

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

Получить длину строки

Чтобы узнать, сколько символов длиной строки, используйте свойство length:

var myString = "Вы довольно характер."; var stringLength = myString.length; // 25

Примечание: для любого метода, который имеет дело с отдельными символами, см. Комментарий Матиаса и его статья о Кодировка JavaScript ,

Найдите подстроку в строке

Есть два способа сделать это.

Использование indexOf ():

var stringOne = "Джонни Уолдо Харрисон Уолдо"; var wheresWaldo = stringOne.indexOf ("Waldo"); // 7

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

Использование lastIndexOf ():

var stringOne = "Джонни Уолдо Харрисон Уолдо"; var wheresWaldo = stringOne.lastIndexOf ("Waldo"); // 22

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

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

Заменить подстроку

Чтобы заменить часть или всю строку новой строкой, вы можете использовать replace ():

var slugger = "Джош Гамильтон"; var betterSlugger = slugger.replace ("h Hamilton", "e Bautista"); console.log (betterSlugger); // "Хосе Баутиста"

Первый аргумент - это подстрока, которую вы хотите заменить, а второй аргумент - новая подстрока. Это заменит только первый экземпляр совпадающей подстроки.

Чтобы заменить все экземпляры совпадающей подстроки, используйте регулярное выражение с глобальным флагом:

var myString = "Она продает автомобильные снаряды на автомобильном берегу"; var newString = myString.replace (/ automotive / g, "sea"); console.log (NewString); // «Она продает морские раковины на берегу моря»

Второй аргумент может включать специальные шаблоны замены или может быть функцией. Больше информации об этих опциях по справке MDN ,

Найти персонажа в заданной позиции

Чтобы узнать, какой символ находится в указанной позиции, вы можете использовать charAt ():

var myString = "Птицы пера"; var whatsAtSeven = myString.charAt (7); // "f"

Как это часто бывает в JavaScript, на первую позицию в строке ссылается «0», а не «1».

В качестве альтернативы вы можете использовать charCodeAt (), который дает вам код символа, а не сам символ:

var myString = "Птицы пера"; 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 Высокие футбольные правила"

Вы также можете передать в нее несколько строк, и все они будут добавлены (в порядке их появления) к исходной строке:

var stringOne = "Knibb"; var stringTwo = "Высокий"; var stringThree = "football"; var stringFour = "rules."; var finalString = stringOne.concat (stringTwo, stringThree, stringFour); console.log (finalString); // «Knibb Высокие футбольные правила».

Нарезать строку (извлечь подстроку)

Существует три разных способа создания нового строкового значения из части другой строки:

Используя slice ():

var stringOne = "abcdefghijklmnopqrstuvwxyz"; var stringTwo = stringOne.slice (5, 10); // "фгидж"

Используя substring ():

var stringOne = "abcdefghijklmnopqrstuvwxyz"; var stringTwo = stringOne.substring (5, 10); // "фгидж"

И для slice (), и для substring () первый аргумент - это символ, с которого начинается подстрока (опять же с нумерацией), а второй аргумент (который является необязательным) - это символ в строке после того, как вы хотите подстроку в конец. Таким образом, в приведенных выше примерах аргументы «5, 10» означают, что символы с 5 по 9 «нарезаются» для создания новой строки.

Использование substr ()

var stringOne = "abcdefghijklmnopqrstuvwxyz"; var stringTwo = stringOne.substr (5, 10); // "фгхиклмно"

Для substr () первый аргумент снова представляет символ, начинающий новую строку, а второй аргумент является необязательным. Но на этот раз второй аргумент представляет общее количество символов, которое должно быть включено, начиная с символа в позиции «5».

Преобразовать строку в верхний или нижний регистр

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

var stringOne = "Говори, я тебя не слышу."; var stringTwo = stringOne.toLocaleUpperCase (); // "ГОВОРИТЬ, Я НЕ СЛУШАЮ ВАС" var stringThree = stringOne.toUpperCase (); // "ГОВОРИТ, Я НЕ СЛУШАЮ ВАС"

И два для преобразования строки в нижний регистр:

var stringOne = "ВАМ НЕ ТРЕБУЕТСЯ"; var stringTwo = stringOne.toLocaleLowerCase (); // "Вам не нужно кричать" var stringThree = stringOne.toLowerCase (); // "не надо кричать"

Как правило, результаты между методом «locale» и методом non-locale совпадают, но согласно справке MDN «Для некоторых локалей, таких как турецкий, чьи сопоставления регистров не соответствуют сопоставлениям регистров по умолчанию в Юникоде, может быть другой результат». Книга Закаса говорит: «если вы не знаете язык, на котором будет выполняться код, безопаснее использовать методы, зависящие от локали».

Сопоставление с образцом

Сопоставление шаблона в строке может быть выполнено с помощью одного из двух методов, которые в основном работают одинаково.

Метод match () вызывается для строки и передается регулярным выражением:

var myString = "Сколько дров можно зарезать?"; var myPattern = /.ood/; var myResult = myString.match (myPattern); // ["wood"] var patternLocation = myResult.index; // 9 var originalString = myResult.input // "Сколько дерева мог бы потрёкать"

И метод exec () вызывается для объекта RegExp и передается строка:

var myString = "Сколько дров можно зарезать?"; var myPattern = /.huck/; var myResult = myPattern.exec (myString); // ["chuck"] var patternLocation = myResult.index; // 27 var originalString = myResult.input // "Сколько дров можно зарезать?"

Для обоих методов возвращается только первое совпадение. Если совпадение не найдено, возвращается ноль.

Вы также можете использовать метод search (), который принимает регулярное выражение в качестве единственного аргумента и возвращает местоположение первого вхождения шаблона:

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

Если совпадений не найдено, метод возвращает «-1».

Сравнить две строки для сортировки

Вы можете сравнить две строки, чтобы увидеть, какая из них идет в алфавитном порядке, используя localeCompare, с тремя возможными возвращаемыми значениями:

var myString = "курица"; var myStringTwo = "egg"; var whichCameFirst = myString.localeCompare (myStringTwo); // -1 (кроме Chrome, который возвращает -2) whichCameFirst = myString.localeCompare ("chicken"); // 0 whichCameFirst = myString.localeCompare ("apple"); // 1 (Chrome возвращает 2)

Как показано выше, отрицательное число возвращается, если строковый аргумент идет после исходной строки, положительное число возвращается, если строковый аргумент предшествует, и 0 возвращается, если строки равны.

Поскольку браузер может вернуть любое отрицательное число или любое положительное число для результатов до и после ( спецификация не требует ничего конкретного), при проверке значения лучше использовать if (result <0), а не if (result === -1), последний из которых не будет работать в Chrome.

Дальнейшее чтение

Если вы заметили какие-либо ошибки, упущения или неполную информацию, пожалуйста, прокомментируйте, и я обновлю соответственно. Между тем, если вы хотите больше узнать о связях со строками в JavaScript, вот несколько источников: