如果满足条件则返回 true

时间:2021-01-27 10:18:43

标签: javascript reactjs vue.js

我必须根据文件扩展名为 div 着色。但是,有时文件扩展名可能与我在下面提到的任何文件扩展名都不匹配,因此在这种情况下,我会将 div 着色为白色。但是在我下面的情况下,即使文件扩展名与 'docx', 'doc', 'txt' 匹配,它也总是白色的,我在这里做错了什么?

if(!this.fileExtension.toLowerCase().match('docx', 'doc', 'txt')) return ''

2 个答案:

答案 0 :(得分:1)

在示例中,您只匹配“docx”扩展名,也许将您的代码封装在检查所有需要的示例的 for 循环中可能是一个解决方案:

let found = False;
for (ext in ["docx", "doc", "txt"]) {
     if (this.fileExtension.toLowerCase().match(ext)) {
         found = True;
         break;
     }
}
// work your magic with the found variable...

答案 1 :(得分:0)

我看看匹配的javascript文档:https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Objets_globaux/String/match

我认为此代码对于您尝试执行的操作是可以接受的:

const extension = "html"

if(!extension.match(/^(doc|docx|txt)$/i)) {
    console.log("white");
}

// print white

'i' 参数用于正则表达式不区分大小写

你也可以这样做

return extension.match(/^(doc|docx|txt)$/i) ? "chose a color here" : "white";