Меню Закрыть

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

Содержание

обычно я ожидал бы String.contains() метод, но, похоже, его нет.

каков разумный способ проверить это?

30 ответов

вот список текущих возможностей:

1. (ЕС6) includes — перейти к ответу

2. В ES5 и старше indexOf

String.prototype.indexOf возвращает позицию строки в другой строке. Если не найден, он вернется -1 .

4. лодаш включает— перейти к ответу

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

вы можете легко добавить contains метод для строки с этим утверждением:

Примечание: см. комментарии ниже для допустимого аргумента для не использования этого. Мой вам совет: судите сами.

проблема с вашим кодом заключается в том, что JavaScript чувствителен к регистру. Ваш вызов метода

на самом деле должно быть

попробуйте исправить это и посмотреть, поможет ли это:

Примечание вам может потребоваться загрузить es6-shim или аналогично, чтобы это работало на старых браузерах.

вы можете использовать JavaScript search() метод.

он возвращает позицию совпадения или -1, если совпадение не найдено.

вам не нужен сложный синтаксис регулярных выражений. Если вы не знакомы с ними простой st.search("title") будет делать. Если вы хотите, чтобы ваш тест был нечувствительным к регистру, то вы должны сделать st.search(/title/i) .

определяет, можно ли найти одну строку в другой строке, возврат true или false в зависимости от обстоятельств.

синтаксис

параметры

строка для поиска в этой строке.

позиция в этой строке, с которой начинается поиск searchString по умолчанию 0.

пример

Примечание

для этого может потребоваться ES6 shim в старых браузерах.

Если вы искали альтернативу для написания уродливой проверки -1, вместо этого вы добавляете

Джо Циммерман — вы увидите, что использование

on -1 преобразует его в 0. Число 0-a значение falsey, означающее, что оно будет оцениваться как false при преобразовании в тип Boolean. На первый взгляд это не кажется большим озарением, но помните, что такие функции, как indexOf, вернут -1, когда запрос не найдено. Это означает, что вместо того, чтобы писать что-то вроде этого:

Теперь у вас может быть меньше символов в коде, чтобы вы могли его написать вот так:

этот фрагмент кода должен хорошо работать:

побитовый оператор отрицания (

) используется для включения -1 на 0 (falsey), а все остальные значения будут не ноль (истина).

операторы двойного логического отрицания используются для приведения числа в логическое.

на в ES5

на ЕС6 есть три новых метода: includes() , startsWith() , endsWith() .

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

1 вариант: использовать Лодашь: это includes способ:

Lodash является самой популярной зависимостью библиотеки javascript для npm и имеет множество удобных методов утилиты javascript. Так что для многих проектов вы все равно захотите этого 😉

2-й вариант: или использовать подчеркивания.строка: это include способ:

Вот описание подчеркивания.string, он просто добавляет 9kb, но дает вам все преимущества хорошо протестированной и документированной библиотеки над фрагментами кода copy’n’paste:

подчеркивания.string-это библиотека JavaScript для удобной манипуляции со строками, расширение для подчеркивания.Яш вдохновил по прототипу.Яш, Право.js, подчеркивание и красивый язык Ruby.

подчеркивания.string предоставляет вам несколько полезных функций: capitalize, очистить, включает, подсчет, escapeHTML, unescapeHTML, вставка, соединение, startsWith, endsWith, titleize, trim, усечение и так далее.

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

Читайте также:  Сколько км горизонт земли

последнее не менее важное: С JavaScript версия ES6 поставляется со встроенным includes способ:

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

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

В этой статье я постараюсь привести примеры и описание наиболее распространенных методов javascript связанных со строками. Наиболее популярные методы для удобства расположены в верхней части статьи.

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

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

Вы также можете совершить подобную манипуляцию при помощи функции string() .

Николас Закас говорит: "Если вы не уверены в значении ( null или undefined ), то используйте функцию String() , так как она возвращает строку в независимости от типа переменной".

Разбиваем строку на подстроки

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

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

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

При помощи свойства length вы можете найти число юникодных символов в строке:

Определяем подстроку в строке

Есть два способа осуществить задуманное:

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

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

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

Как заменить часть строки

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

В первом аргументе содержится та часть подстроки, которая подлежит замене; второй аргумент — это та строка, которая встанет на место заменяемой подстроки. Будет заменен только первый экземпляр подстроки.

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

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

Найти символ по заданной позиции

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

Как это часто бывает в javascript, первая позиция ведет свой отсчет с 0, а не с 1.

Как альтернативу вы можете использовать метод charCodeAt() , однако вместо самого символа вы получите его код.

Отметьте, что код для прописной буквы (позиция 11) отличается от кода той же буквы, но в малом регистре (позиция 7).

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

По большой части для конкатенации строк вы будете использовать оператор (+). Но вы также можете объединить строки, используя метод concat() .

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

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

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

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

Читайте также:  Windows 10 pro не активируется

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

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

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

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

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

Соответствие шаблону в javascript

Проверить наличие шаблона в строке можно при помощи 2-х методов.

Метод match() вызывается у объекта string , в качестве аргумента методу match() передается регулярное выражение.

И exec() метод вызывается у RegExp объекта, в качестве аргумента передается строка:

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

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

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

Сравнение двух строк для последующей сортировки

Чтобы сравнить две строки в зависимости от порядка сортировки в языковом стандарте, вы можете использовать метод localeCompare . Метод localeCompare возвращает три возможных значения.

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

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

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

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

Конвертирование в String

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

Вы можете сделать это так же с помощью String():

Если вы не уверены, что значение не является null или undefined, вы можете использовать String(), которая всегда возвращает строку, независимо от типа значения.

Разделение строки в подстроки

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

Как видно в последней строке, второй параметр функции — это лимит количества элементов, которое будет в итоговом массиве.

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

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

Поиск подстроки в строке

Есть два метода для поиска подстроки:

Читайте также:  Телефон нокия люмия 1320

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

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

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

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

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

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

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

Первый аргумент — то, что вы хотите заменить и второй аргумент — новая строка. Функция заменяет только первое вхождение подстроки в строку.

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

Второй аргумент может включать специальный шаблон или функцию. Подробней можно почитать здесь.

Получить символ по заданной позиции в строке

Получить символ мы можем с помощью функции charAt():

Как часто бывает в JavaScript, первая позиция в строке начинается с 0, а не с 1.

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

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

Соединение строк

В большинстве случаем, чтобы соединить строки, можно использовать оператор «+». Но так же можно использовать метод concat():

Таким способом мы можем соединить множество строк в одну в том порядке, в котором они записаны:

Извлечение подстроки

Есть 3 способа получения строки из части другой строки:

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

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

В обеих функция первый параметр — символ, с которого начинает подстрока (начиная с 0 позиции) и второй аргумент (необязательный) — позиция символа, до которого возвращается подстрока. В примере (5, 10) возвращается строка между позицией 5 и 9.

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

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

Другие 2 переводят строку в нижний регистр:

Лучше использовать «locale» методы, т.к. в разных местах, например, в Турции отображение регистров работает не совсем так, как мы привыкли и поэтому результат может быть тот, который мы хотели. Если использовать «locale» методы, то таких проблем не будет.

Pattern Matching

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

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

Метод exec() применяется к объекту регулярного выражения и принимает в качестве параметра строку:

В обоих методах возвращается лишь первое совпадение. Если совпадений не было — возвращается null.

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

Если совпадений не было — возращается «-1«.

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

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

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

Для проверки возвращаемого значения лучше использовать if ( result Автор статьи: Alex. Категория: JavaScript
Дата публикации: 19.03.2013

Рекомендуем к прочтению

Добавить комментарий

Ваш адрес email не будет опубликован.