一尘不染

如何检查字符串是否包含子字符串?[重复]

javascript

我有一个购物车,在下拉菜单中显示产品选项,如果它们选择“是”,我想使页面上的其他一些字段可见。

问题是购物车的文本中还包含价格修饰符,每个产品的价格修饰符可能不同。以下代码有效:

$(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();
        }
    });
});

我只想在所选选项包含单词“是”的情况下执行操作,并且会忽略价格修饰符。


阅读 216

收藏
2020-05-01

共1个答案

一尘不染

像这样:

if (str.indexOf("Yes") >= 0)

…或者您可以使用波浪号运算符:

if (~str.indexOf("Yes"))

之所以有效,是因为如果根本找不到该字符串,则indexOf()返回-1

请注意,这是区分大小写的。
如果您要进行不区分大小写的搜索,可以编写

if (str.toLowerCase().indexOf("yes") >= 0)

要么:

if (/yes/i.test(str))
2020-05-01