Javascript:与正则表达式或其他方式进行比较

时间:2016-02-16 19:47:46

标签: javascript regex compare

我知道我可以/z/i.test(str)我也可以与str === z || tre === Z进行比较,只是我很好奇是否有这样的短线

if (str === /z/i) { do the dew }

上述行不应检查str是否包含z|Z,但是它是否等于z|Z

谢谢:)

1 个答案:

答案 0 :(得分:1)

JavaScript没有=~运算符(就像Perl,Ruby等)。

当您编写str === /\n|z/i时,您正在将字符串与RegExp对象进行比较,这对象没有意义并且会产生意外结果。

如果/z/i.test(str)包含strz,则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;
&#13;
&#13;