我想从Angular ReactivForms中图像的FormControl中获取名称。我得到了像file = "C:\fakepath\Screenshot (1).png"
这样的图像的完整路径,但是我只想要Screenshot (1).png
。
我使用control.value
获取图像的名称。
我想添加,我的C:目录C:\fakepath\
这是我的方法:
requiredFileType(categoryList: CategoryModel[]) {
return function (control: FormControl) {
const file = control.value;
if (file) {
const extension = file;
for (let i = 0; i < categoryList.length; i++) {
for (let j = 0; j < categoryList[i].productModel.length; j++) {
for (let k = 0; k < categoryList[i].productModel[j].imageProduct.length; k++) {
console.log(categoryList[i].productModel[j].imageProduct[k].image_path);
if (categoryList[i].productModel[j].imageProduct[k].image_path.includes(extension)) {
console.log(categoryList[i].productModel[j].imageProduct[k].image_path);
return{
requiredFileType: true
};
}
}
}
}
return null;
}
return null;
};
}
有人知道这个的解决方法吗?
答案 0 :(得分:2)
如果您的路径具有固定的字符数(不更改),请使用substring
:
const file = control.value;
const fileName = file.substring(10, str.length);
演示:
let str = "C:\fakepath\Screenshot (1).png";
const mystr = str.substring(10, str.length);
console.log(mystr)
答案 1 :(得分:2)
您可以在javascript中使用substring()
和lastIndexOf()
函数
const path = control.value;
const fileName = path.substring(path.lastIndexOf('\') + 1, path.length);