Дополнительно
Как проверить, содержит ли строка подстроку?
У меня есть корзина, которая отображает варианты товаров в выпадающем меню, и если они выбирают "да", я хочу сделать видимыми некоторые другие поля на странице.
Проблема в том, что корзина также включает модификатор цены в текст, который может быть разным для каждого продукта. Работает следующий код:
$(document).ready(function() {
$('select[id="Engraving"]').change(function() {
var str = $('select[id="Engraving"] option:selected').text();
if (str == "Yes (+ $6.95)") {
$('.engraving').show();
} else {
$('.engraving').hide();
}
});
});
Однако я бы предпочел использовать что-то вроде этого, что не работает:
$(document).ready(function() {
$('select[id="Engraving"]').change(function() {
var str = $('select[id="Engraving"] option:selected').text();
if (str *= "Yes") {
$('.engraving').show();
} else {
$('.engraving').hide();
}
});
});
Я хочу выполнять действие, только если выбранный вариант содержит слово "Да", и игнорировать модификатор цены.
957
13
Например:
... или вы можете использовать оператор тильда:
Это работает, потому что
indexOf()
возвращает-1
, если строка не была найдена вообще.Обратите внимание, что это чувствительно к регистру.
Если вам нужен поиск без учета регистра, вы можете написать
Или,
Для этого можно использовать search или match.
str.search( 'Yes' )
вернет позицию совпадения или -1, если оно не найдено.
Уже довольно поздно писать этот ответ, но я все равно решил его включить. У
String.prototype
теперь есть методincludes
, который может проверять наличие подстроки. Этот метод чувствителен к регистру.Чтобы проверить наличие подстроки, можно использовать следующий подход:
Ознакомьтесь с документацией, чтобы узнать больше.
Другой способ:
Проверено на Firefox, Safari 6 и хром 36
В ECMAScript 6 вводит
строки.прототип.включает
, ранее названныйсодержит
.Он может быть использован такой:
Он также принимает необязательный второй аргумент, который указывает позицию, с которой начинать поиск:
Это может быть polyfilled]2, чтобы заставить его работать на старых браузерах.
Возвращает количество раз ключевое слово входит в строку.
Вы можете использовать этот полифилл в IE и Chrome
Я знаю, что лучший способ является STR
.метод indexOf(ы) !== -1;
http://hayageek.com/javascript-string-contains/Я предлагаю другой способ (ул.
.заменить(С1 " Ну и") !== ул.
):в
в
Если вы не способны использовать библиотеки, вы можете обнаружить, что Ло-тире библиотека JS-это довольно полезно. В этом случае, идти вперед и проверить
_.содержит()
(заменить `_.включает в себя () от В4).(Примечание Ло-тире конвенции именования библиотеки объекта _. Дон'т забудьте проверить установки в той же странице, чтобы настроить его для вашего проекта.)
В вашем случае, идти вперед и использовать:
..какой вам больше нравится.
Вы также можете проверить, если точные слова, содержащиеся в строке. Е. Г.:
Использование:
Это как jQuery делает его метода hasClass.
Ни один из выше работал для меня, как были пустые места, но это то, что я сделал
вы можете определить метод расширения и использовать его в дальнейшем.
так что вы можете использовать на Вашей странице в любом месте, таких как:
что возвращает правда.
См. ниже пост дополнительные вспомогательные методы расширения. Вспомогательные методы JavaScript