检查Javascript中的字符串中是否包含子字符串(相反)
我不是要求substr,indexOf,includes,substring函数;它与“苹果”相反。它包括在(“苹果树”) 是否有一个函数可以通过与常规检查方法相反的方式进行检查?如果子字符串包含在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
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")