我知道我可以/z/i.test(str)
我也可以与str === z || tre === Z
进行比较,只是我很好奇是否有这样的短线
if (str === /z/i) { do the dew }
上述行不应检查str
是否包含z|Z
,但是它是否等于z|Z
。
谢谢:)
答案 0 :(得分:1)
JavaScript没有=~
运算符(就像Perl,Ruby等)。
当您编写str === /\n|z/i
时,您正在将字符串与RegExp对象进行比较,这对象没有意义并且会产生意外结果。
如果/z/i.test(str)
包含str
或z
,则Z
会返回true。
如果您需要使用非正则表达式检查相同的条件,请使用
if (z.toLowerCase().indexOf("z") > -1)
如果您需要检查字符串相等是z
还是Z
,您可以使用
if (z.toUpperCase() === "Z")
示例演示:
z = "Zoe";
if (z.toLowerCase().indexOf("z") > -1) {
document.body.innerHTML = "'Z' or 'z' is present in 'Zoe'.<br/>";
}
z = "z";
if (z.toUpperCase() === "Z") {
document.body.innerHTML += "The string is equal to 'z' or 'Z'";
}
&#13;