我必须根据文件扩展名为 div 着色。但是,有时文件扩展名可能与我在下面提到的任何文件扩展名都不匹配,因此在这种情况下,我会将 div 着色为白色。但是在我下面的情况下,即使文件扩展名与 'docx', 'doc', 'txt'
匹配,它也总是白色的,我在这里做错了什么?
if(!this.fileExtension.toLowerCase().match('docx', 'doc', 'txt')) return ''
答案 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";