在JS中的条件语句中使用META CHARACTERS无法正常工作

时间:2019-02-21 09:22:33

标签: javascript

用这段小代码我过得很糟糕。

我试图使用正则表达式-元字符在“想要的”数组中查找“ Le Guin”,而不必直接在条件语句中键入“ Le Guin”,而是通过使用一些元字符来实现。

很有趣的是,我昨天尝试了这个方法,它确实起作用了,但是我现在不知道这是怎么回事...

条件语句中的“!/ [Le * Guin] /”是在说什么...

请验证代码有什么问题

wannabe = ["Le Guin", "Ibrahim", "Ope", "You", "Le Guin", "Now", "Then", "Who", "Le Guin"];

for (a = 0; a < wannabe.length; ++a) {
    if (wannabe[a] == !/[Le*Guin]/) {
        document.write(a + ": " + "This is found at: " + a + "<br>")

        break
    } else {
        document.write(a + ": " + "not yet" + "<br>")
    }
}

2 个答案:

答案 0 :(得分:0)

wannabe = ["Le Guin", "Ibrahim", "Ope", "You", "Le Guin", "Now", "Then", "Who", "Le Guin"];

for (a = 0; a < wannabe.length; ++a) {
    if ('Le Guin'.match(/[Le*Guin]/)) {
        console.log(a + ": " + "This is found at: " + a + "<br>")
        break
    } else {
        console.log(a + ": " + "not yet" + "<br>")
    }
}

js中实际上有match()方法,用于在数组中查找用于正则表达式的字符串。

所以 用这个

if('Le Guin'.match(/ [Le * Guin] /))

答案 1 :(得分:0)

您可以使用matchtestexec来检查字符串是否与正则表达式匹配。

尝试一下:

let wannabe = ["Ibrahim", "Le Guin", "Ope", "You", "Le Guin", "Now", "Then", "Who", "Le Guin"];

for (let a = 0; a < wannabe.length; ++a) {
    
    if (wannabe[a].match(/Le *Guin/)) {
        
        console.log('Found');

        break;
    } 
    
    else console.log('Not yet');
}

此外,您不需要在正则表达式中使用方括号。