javascript中的字符串比较返回一个布尔值

时间:2012-05-22 15:28:45

标签: javascript

javascript中是否有比较字符串并返回布尔值的函数?我找到了.match,但它返回匹配的字符串。我希望还有别的东西,以便我在比较字符串时会有更少的代码。因为我想检查一个字符串是否有这个单词而不是继续。

感谢

8 个答案:

答案 0 :(得分:14)

您可以使用返回布尔值的RegEx test()方法:

/a/.test('abcd'); // returns true.

答案 1 :(得分:12)

您可以使用扩充类型,尤其是在您需要经常使用此功能时:

String.prototype.isMatch = function(s){
   return this.match(s)!==null 
}

所以你可以使用:

var myBool = "ali".isMatch("Ali");

一般认为,仅使用类型扩充不鼓励,因为它可能会与其他扩充冲突。

根据Javascript Patterns书,它的使用必须受到限制。

我个人认为没关系,只要你使用一个好的命名,如:

String.prototype.mycompany_isMatch = function(s){
   return this.match(s)!==null 
}

这会使丑陋,但安全

答案 2 :(得分:5)

.indexOf()将返回找到的字符串的位置,如果找不到则返回-1

答案 3 :(得分:1)

myString.indexOf(myWord) > -1

或者,如果你想要一个功能:

function hasWord(myString, myWord) {
  return myString.indexOf(myWord) > -1;
}

答案 4 :(得分:0)

您可以使用比较。

if ("dog" == "cat") {
  DoSomethingIfItIsTrue();
} else {
    DoSomethingIfItIsFalse();
}

答案 5 :(得分:0)

我知道这不是您正在寻找的确切答案,但这始终是一种有效的方法。

if(var1 == var2){
  //do this
}else{
  //do that
};

答案 6 :(得分:0)

实际上,.match()可以为你做这个技巧,因为它返回一个模式匹配字符串数组(如果有的话),否则返回null。

无论如何,如果你只是想检查一个字符串是否包含另一个字符串,你更有可能使用indexOf()(如果没有找到子字符串,它将返回-1)。

第一种解决方案对你来说有点矫枉过正。

如果在另一端要检查是否相等,可以使用`string1 === string2``

答案 7 :(得分:0)

如果有人还有疑问...

另一位同事使用indexOf()方法引用了它。如果未在数组中找到String,则此方法的返回结果为“ -1”,或者返回所找到大小写的位置。

要在期望的收益率下使用它,您必须先进行检查,例如:

exampleMethod () {
const expression = ['string1', string2] .indexOf (this.exampleObject);
if (expression! = -1) {
 return true;
  } else return false;
}

基本上,您会利用此收益。

但是,includes()方法可以简单地使用:

exampleMethode(): boolean {
  return ['string1', 'string2'].includes(this.exampleObject);
}

此方法的返回将以简单的方式完成您想要的操作。将对象字符串与要检查的字符串数组进行比较,并返回一个布尔值。