我试图从字符串中删除一些字符,但是失败了,我也不知道为什么。
这是代码
path='url("https://www.example.com/folder/next/another/myfilename.jpg")';
var file = path.split('/');
console.log('file is: '+file);
file = file[file.length-1];
console.log('file is: '+file);
file=file.replace('/[")(]/g',''); // try also replace('/[")(]','') failed
console.log('file is: '+file);
return file;
我在控制台上阅读
file is: url("https:,,www.example.com,folder,next,another,myfilename.jpg")
file is: myfilename.jpg")
file is: myfilename.jpg")
我不明白为什么替换功能中的“()字符不会被替换。
感谢您的帮助和解释!
答案 0 :(得分:2)
删除正则表达式中的引号:
function testFunction() {
path='url("https://www.example.com/folder/next/another/myfilename.jpg")';
var file = path.split('/');
console.log('file is: '+file);
file = file[file.length-1];
console.log('file is: '+file);
file=file.replace(/[")(]*/g, '');
console.log('file is: '+file);
return file;
}
testFunction();
在控制台中:
file is: url("https:,,www.example.com,folder,next,another,myfilename.jpg")
file is: myfilename.jpg")
file is: myfilename.jpg
现在的返回值为"myfilename.jpg"
。
是你想要的吗?
答案 1 :(得分:1)
此处要使用的正确正则表达式将是/[()"]*/g
而不是'/[")(]/g'
答案 2 :(得分:1)
const path = 'url("https://www.example.com/folder/next/another/myfilename.jpg")';
const filename = path.split('/').pop().split('"')[0];
console.log(filename);
/
pop
获取最后一个项目。这将给您myfilename.jpg")
"
拆分array[0]
获取第一项。这将给您myfilename.jpg
/
,第二次是"
字符