javascript - 如何检查字符串是否包含子字符串?

标签 javascript jquery string substring contains

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

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

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

我只想在所选选项包含"is"字样时执行该操作,并且会忽略价格修饰符。

最佳答案

像这样:

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

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

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

这是可行的,因为如果根本找不到字符串,indexOf() 会返回 -1

请注意,这是区分大小写的。
如果你想要一个不区分大小写的搜索,你可以写

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

或者:

if (/yes/i.test(str))

后者是正则表达式regex

正则表达式分解:

  • / 表示这是一个正则表达式
  • yes 表示正则表达式将按照确切的顺序找到那些确切的字符
  • / 结束正则表达式
  • i 将正则表达式设置为区分大小写
  • .test(str) 判断正则表达式是否匹配str 总而言之,这意味着它将查看是否可以按照确切的顺序找到字母 yes,大小写——不敏感地,在变量 str

关于javascript - 如何检查字符串是否包含子字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3480771/

相关文章:

javascript - 创建 jQuery 对象时出现问题

javascript - 如何使用 AnythingSlider(jquery 插件)制作更大的幻灯片?

javascript - PHP 表单未提交但未显示任何错误

javascript - 为什么我在 webstorm 8 中没有从 Angular 获取预先打包的错误消息?

javascript - AngularJs:对 Controller 的实现存疑

jquery - 基于 jQuery 的负载测试 ajax 应用程序

javascript - 从 1's and 0' 的字符串中选择随机数并改变颜色

C++ 从文件中读取整数和字符串

带有自定义字符串的 MySQL 前缀 SET 字段值

C++ "std::string has not been declared"错误