用这段小代码我过得很糟糕。
我试图使用正则表达式-元字符在“想要的”数组中查找“ 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>")
}
}
答案 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)
您可以使用match,test或exec来检查字符串是否与正则表达式匹配。
尝试一下:
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');
}
此外,您不需要在正则表达式中使用方括号。