我正在尝试清理验证脚本。
因此,如果上传的文件类型是错误的 - 例如图像而不是pdf。我需要警报说 - 上传了错误的文件类型,只接受pdf。
https://jsfiddle.net/mf78otve/37/
所以验证字符串看起来像这样
"application/pdf, application/x-pdf, application/acrobat, applications/vnd.pdf, text/pdf, text/x-pdf"
但真的需要清理它 - PDF,X-PDF,VND.pdf,PDF,X-PDF
然后删除重复项,然后是PDF,X-PDF,VND.pdf
var validations = "application/pdf, application/x-pdf, application/acrobat, applications/vnd.pdf, text/pdf, text/x-pdf";
console.log("validations", validations);
var res = validations.split("/");
console.log("res", res);
var uniqueArray = function(arrArg) {
return arrArg.filter(function(elem, pos,arr) {
return arr.indexOf(elem) == pos;
});
};
console.log(uniqueArray(res));
使用split
然后map
和 finllay 的组合filter
var validations = "application/pdf, application/x-pdf, application/acrobat, applications/vnd.pdf, text/pdf, text/x-pdf";
var result = validations.split`, `.map((a)=>a.split`/`[1]).filter((a,p,s)=>a.includes`pdf`&& s.indexOf(a)==p)
console.log(result)
使用 Set
, split
, filter
和 map
var output = [...new Set( //Use set to remove duplicates
input.split(",") //split by comma
.map(s => s.split("/")[1]) take out value after /
.filter( s => s.includes( "pdf" ) ) //only keep the values having pdf in it
)];
演示
var input = "application/pdf, application/x-pdf, application/acrobat, applications/vnd.pdf, text/pdf, text/x-pdf";
var output = [...new Set(input.split(",").map(s => s.split("/")[1]).filter( s => s.includes( "pdf" ) ))];
console.log( output )