Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript中返回布尔值的字符串比较_Javascript - Fatal编程技术网

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

javascript中返回布尔值的字符串比较,javascript,Javascript,javascript中是否有比较字符串并返回布尔值的函数?我找到了.match,但它返回匹配的字符串。我希望还有别的东西,这样我就可以在比较字符串时使用更少的代码。因为我想检查一个字符串是否有这个单词,否则不继续 谢谢这里有.indexOf(),它将返回找到的字符串的位置,如果没有找到,则返回-1您可以使用比较 if ("dog" == "cat") { DoSomethingIfItIsTrue(); } else { DoSomethingIfItIsFalse(); } 我知

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


谢谢

这里有
.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);
}