Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.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_String - Fatal编程技术网

检查Javascript中的字符串中是否包含子字符串(相反)

检查Javascript中的字符串中是否包含子字符串(相反),javascript,string,Javascript,String,我不是要求substr,indexOf,includes,substring函数;它与“苹果”相反。它包括在(“苹果树”) 是否有一个函数可以通过与常规检查方法相反的方式进行检查?如果子字符串包含在javascript中的字符串中,其中子字符串是操作对象 因为我希望能够安全地检查子字符串,但要检查的字符串是一个变量,例如 let arr = [null, "apple tree"] let str = arr[Math.floor(Math.random() * arr.le

我不是要求substr,indexOf,includes,substring函数;它与“苹果”相反。它包括在(“苹果树”)

是否有一个函数可以通过与常规检查方法相反的方式进行检查?如果子字符串包含在javascript中的字符串中,其中子字符串是操作对象

因为我希望能够安全地检查子字符串,但要检查的字符串是一个变量,例如

let arr = [null, "apple tree"]
let str = arr[Math.floor(Math.random() * arr.length)];
if ("apple".isIncludedIn(str)) {
  console.log("It is!");
}
因为
str.includes(“apple”)
可能导致
无法读取null的属性“includes”

[补充说明]


我知道我可以做
(str&&str.includes())
((str||''').includes())
,但这些对我来说似乎是“黑客”的(个人观点)。

只要颠倒参数和调用的字符串即可。达到

"apple".isIncludedIn("apple tree")

若要允许
nulls
而不抛出,请使用可选链接(如果希望简洁)

让arr=[null,“苹果树”]
设str=arr[Math.floor(Math.random()*arr.length)];
如果(str?.includes(“苹果”)){
log(“它是!”);
}否则{
console.log(“它不是”);

}
使用
|
操作员将解决您的问题

(str | |'')。包括(“苹果”)
如果
str
null
,则它将检查
'
,因此返回false


如果存在
str
,则返回字符串是否包含子字符串

const f=any=>typeof any=='string'?任何。包括(‘苹果’):假我喜欢这个答案,但要预先警告的是,虽然。几乎是所有的方式,它不是很完美。我不知道问号符号。谢谢其他的选项对我来说似乎很“黑”,比如
str&&str.includes()
(str | |“”).includes()
"apple tree".includes("apple")