我知道我可以做 /z/i.test(str)
并且我还可以与 str === z || 进行比较tre === Z
,只是我很好奇是否有这样的短线
if (str === /z/i) { do the dew }
上面的行不应检查 str
是否包含 z|Z
,而是检查它是否等于 z|Z
。
谢谢:)
最佳答案
JavaScript 没有 =~
运算符(如 Perl、Ruby 等)。
当您编写 str ===/\n|z/i
时,您正在将字符串与 RegExp 对象进行比较,这没有意义,并且会产生意外的结果。
如果str
包含z
或Z
,则/z/i.test(str)
返回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'";
}
关于Javascript:与正则表达式或其他方式进行比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35441752/