Методы строки. Поиск в Javascript

Методы строковых объектов. Поиск

Разбирая методы строковых объектов, помимо изменения регистра, несомненно, следует затронуть такую важную часть, как поиск, а также возможность извлекать копии символов и строк.....

Как найти строку или ее фрагмент

При помощи специального метода string.indexOf() мы можем проверить содержание одной строки внутри другой, что при работе с данными JavaScript будет очень полезно.


Важная информация

Метод string.indexOf() как результат возвращает нам число, определяющее индекс (Изначально это ноль) символа строки (в которой проводится поиск), с которого начнется искомое. Таким образом, если поиск не увенчался успехом, то нам вернется значение "-1". Если же оно будет иным, то искомое в строке - найдено.

Внимание! Важно правильное написание метода string.indexOf с заглавной Of, иначе не будет работать.


Для того, чтобы воспользоваться методом, необходимо указать то, где искать и то, что искать. То, где мы ищем указывается вместо string (строка):

где ищем.indexOf("Что ищем")

То есть, если поиск слова "Javascript" ведется по переменной peremennaya, выглядеть это будет так: peremennaya.indexOf("Javascript")

Для наглядности, приведу сюда код на проверку того, какая система установлена на компьютере пользователя:

<script type="text/javascript">
var isWindows = "Система, отличная от Windows";
if(navigator.userAgent.indexOf("Win") != -1)
{
isWindows= "У вас установлен Windows";
}
document.getElementById("output").value= (isWindows)

Тут мы воспользовались поиском по navigator.useragent, который содержит информацию о браузере пользователя и системе. В случае, если в его строке присутствует короткая строка "Win", поиск будет считаться успешным и на странице будет выведено сообщение об установленной системе.

Запустить скрипт можно прямо тут по кнопке:


 

Как извлечь копии символов и подстрок.

Бывает, что необходимо извлечь из строки отдельный символ. В этом случае следует использовать метод chartAt().

Параметром метода является индекс искомого символа. При этом, при применении метода, строка, к которой он применяется, не изменится.

Еще один метод, относящийся к этой группе, string.substring(). Он позволяет извлечь некоторую необходимую последовательность символов.


Важная информация

Важно обратить внимание, что последний символ, указанный в строке, не извлекается! А все остальные символы будут извлечены string.substring(A,B) - Извлекаются все символы строки string от A(число) до B(число), при том что счет строки начинается с 0

 


 

Давайте на примере разберем строчки кода:

<script>var stringA = "Я люблю Javascript";

var stringB = stringA.substring(2,8);
alert(stringB)
</script>

Результатом этого скрипта будет алерт со словом "люблю" - результат извлечения со 2 по 8 символ строки stringA (Я люблю Javascript)


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

Результатом этой комбинации действий может стать выражение типа:

var posmotri = ("Посмотри, как я живу,\nГлядя с неба на Москву\nСлышишь музыку в часах \nШаг за шагом день за днём\nМир похож на черепаху\nВ круглом домике своём");

var cherepah = posmotri.substring(posmotri.indexOf(" днём")+6, posmotri.length);

alert(posmotri);

alert(cherepah);

В данном примере мы извлекли часть строки при помощи поиска по слову и до конца (до последнего символа = длины строки) и вывели алертами оба варианта.

Обратите внимание на posmotri.substring(posmotri.indexOf(" днем")+6, posmotri.length) - выведены будут символы после 6 от найденного " днем" - то есть, мы можем варьировать поиском при помощи арифметики как нам удобно.

Запустить скрипт можно нажав на кнопочку