为什么我的RegExp()无法使用我的contains()?

时间:2017-05-13 16:51:55

标签: jquery regex list contains

根据我可以执行的浏览器宽度删除列表项时:

$(document).ready(function() {
    var changeWidth = 992;
    if ($(window).width() < changeWidth) {
        $('li:contains("Home")').remove();
    }
});

在研究使用类似于Home的典型正则表达式模式删除Home|HOME的方法时,我进行了搜索并了解了RegExp,所以我尝试了:

$(document).ready(function() {
    var changeWidth = 992,
        regex = new RegExp('Home|HOME');

    if ($(window).width() < changeWidth) {
        $('li:contains("' + regex + '")').remove();
    }
});

它没有用,所以我研究并找到了Javascript RegExp: Create regex with variable [duplicate]并尝试了:

$(document).ready(function() {
    var changeWidth = 992,
        regex = new RegExp("Home", "i");

    if ($(window).width() < changeWidth) {
        $('li:contains("' + regex + '")').remove();
    }
});

之后无效,我发现this并尝试:

$(document).ready(function() {
    var changeWidth = 992,
        pattern1 = "Home",
        pattern2 = "HOME",
        regex = new RegExp(pattern1+'|'+pattern2, 'gi');

    if ($(window).width() < changeWidth) {
        $('li:contains("' + regex + '")').remove();
    }
});

进一步阅读:

我试过了:

$(document).ready(function() {
    var changeWidth = 992,
        string = "Home",
        regex = new RegExp("HOME", 'gi'),
        result = string.match(regex);

    if ($(window).width() < changeWidth) {
        $('li:contains("' + result + '")').remove();
    }
});

如果Home存在则有效,但HOME出现时无效。我做错了什么?我如何才能为HomeHOME制作正则表达式?

0 个答案:

没有答案