替换字符串(URL)中的某些字符

时间:2019-02-20 06:25:36

标签: javascript

我试图从字符串中删除一些字符,但是失败了,我也不知道为什么。

这是代码

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")

我不明白为什么替换功能中的“()字符不会被替换。

感谢您的帮助和解释!

3 个答案:

答案 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);

方法

  1. 基于/
  2. 分割字符串
  3. 使用pop获取最后一个项目。这将给您myfilename.jpg")
  4. 再次用"拆分
  5. 使用array[0]获取第一项。这将给您myfilename.jpg

功能

  • 使用Array.split 根据定界符分割字符串。第一次是/,第二次是"字符
  • 使用Array.pop 获取(并删除)数组中的最后一项