javascript中是否有比较字符串并返回布尔值的函数?我找到了.match,但它返回匹配的字符串。我希望还有别的东西,以便我在比较字符串时会有更少的代码。因为我想检查一个字符串是否有这个单词而不是继续。
感谢
答案 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);
}
此方法的返回将以简单的方式完成您想要的操作。将对象字符串与要检查的字符串数组进行比较,并返回一个布尔值。