javascript中返回布尔值的字符串比较
javascript中是否有比较字符串并返回布尔值的函数?我找到了.match,但它返回匹配的字符串。我希望还有别的东西,这样我就可以在比较字符串时使用更少的代码。因为我想检查一个字符串是否有这个单词,否则不继续javascript中返回布尔值的字符串比较,javascript,Javascript,javascript中是否有比较字符串并返回布尔值的函数?我找到了.match,但它返回匹配的字符串。我希望还有别的东西,这样我就可以在比较字符串时使用更少的代码。因为我想检查一个字符串是否有这个单词,否则不继续 谢谢这里有.indexOf(),它将返回找到的字符串的位置,如果没有找到,则返回-1您可以使用比较 if ("dog" == "cat") { DoSomethingIfItIsTrue(); } else { DoSomethingIfItIsFalse(); } 我知
谢谢这里有
.indexOf()
,它将返回找到的字符串的位置,如果没有找到,则返回-1您可以使用比较
if ("dog" == "cat") {
DoSomethingIfItIsTrue();
} else {
DoSomethingIfItIsFalse();
}
我知道这不是你想要的确切答案,但这始终是一种有效的方法
if(var1 == var2){
//do this
}else{
//do that
};
或者,如果您想要函数:
function hasWord(myString, myWord) {
return myString.indexOf(myWord) > -1;
}
您可以使用type增强,尤其是需要经常使用此功能时:
String.prototype.isMatch = function(s){
return this.match(s)!==null
}
因此,您可以使用:
var myBool = "ali".isMatch("Ali");
一般认为,不鼓励使用类型扩充,只是因为它可能与其他扩充冲突 根据这本书,它的使用必须受到限制 我个人认为这是可以的,只要你使用一个好的命名,如:
String.prototype.mycompany_isMatch = function(s){
return this.match(s)!==null
}
这将使它变得丑陋,但安全。您可以使用RegEx
test()
方法返回布尔值:
/a/.test('abcd'); // returns true.
实际上,.match()
可以帮你解决这个问题,因为它返回一个模式匹配字符串数组(如果有的话),否则返回null
无论如何,如果您只想检查一个字符串是否包含另一个字符串,则更可能使用indexOf()
(如果未找到子字符串,则返回-1)
第一个解决方案对于您的目的来说有点过分
如果在另一端要检查是否相等,如果有人仍有疑问,可以使用'string1===string2`。。。
另一位同事使用indexOf()
方法引用了这篇文章。如果该方法在数组中找不到字符串,则返回“-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);
}
此方法的返回将以一种简单的方式实现您想要的功能。将对象字符串与要检查的字符串数组进行比较,并返回一个布尔值。您是在寻找string1与string2的精确匹配,还是string1可能出现在较大string2的某个位置?这是我的第一个解决方案,但我遇到了一个缺陷。Email==朋友电子邮件将返回false。因此,我正在为javascript寻找一个类似strcmp的函数。:)我一直认为这只适用于数组。不,它也适用于字符串!但是我有点不清楚你是在寻找字符串中的子字符串,还是精确的(case-instive?)字符串比较..区分大小写,但我计划使用tolowercase来缓解我的问题。让我试试这个。谢谢不知道为什么谷歌没有给我看这个。根据大量的文章(以及我个人的观点),
==
测试比==
(不可传递)可靠得多(并且具有传递性)。此外,如果他需要一个布尔值,他可以使用(var1===var2?true:false)
是的,我知道他想返回一个布尔值,但他以后会怎么做,我的假设是,如果它是真的,做些什么,如果它是假的,做些什么。但是,是的,你们的===是正确的。太好了!(可能有点过分了?:D)我以前没见过这些东西。什么是ismatch?让我试试这个。thanks@magicianIam如果您将它添加到字符串原型中,它将起作用-正如我所概述的isMatch
是我们对JavaScript框架的补充,不是一个内在函数字符串中没有“isMatch”方法。Aliostad想要解释的是,您可以通过定义新函数并将其添加到原型中来增强javascript对象功能。再看一看,如果他只需要一个条件,这就太过分了。。如果你需要在很多地方使用这种方法,这种方法会更好。严格地说,如果你采用这种方法,你希望使用“==”,而不是“==”。我怀疑大多数Javascript程序员都会使用它,而不是扩充字符串原型,因此至少让人们养成使用“==”检查相等性的习惯是值得的。这是正确的答案。“test()方法执行搜索正则表达式和指定字符串之间的匹配项。返回true
或false
”--
exampleMethode(): boolean {
return ['string1', 'string2'].includes(this.exampleObject);
}