【问题标题】:How to extract string from url? [duplicate]如何从url中提取字符串? [复制]
【发布时间】:2021-03-06 16:54:48
【问题描述】:

API 提供 url 但我只想获取 url 中的特定字符串。例如:

https://firebasestorage.googleapis.com/v0/b/project-xxxx.appspot.com/o/folder_lib%2Fphoto_xxx-xxx-xxx.png?alt=media&token=xxx-xxx-xxx20-5-2016.csv?alt=media&token=b5d45a7f-3ab7-4f9b-b661-3a2187adxxxx

但我只想得到:photo_xxx-xxx-xxx.png

如何分割photo处的url,以png结尾?

【问题讨论】:

标签: javascript node.js regex typescript parsing


【解决方案1】:

你可以用字符串“%2F”分割,得到数组中的最后一个元素,用“?”分割得到第一个元素

const splitBySlash = url.split('%2F')
const filePath = splitBySlash[splitBySlash.length - 1]
const splitByQuestion = filePath.split('?')
const file = splitByQuestion[0]

【讨论】:

    【解决方案2】:

    了解regex

    要使用的正则表达式是:/photo_(.*).png/;

    使用方法见下文

    var res = "https://firebasestorage.googleapis.com/v0/b/project-xxxx.appspot.com/o/folder_lib%2Fphoto_xxx-xxx-xxx.png?alt=media&token=xxx-xxx-xxx20-5-2016.csv?alt=media&token=b5d45a7f-3ab7-4f9b-b661-3a2187adxxxx".match(/photo_(.*).png/)[0];
    
    console.log(res)

    这是一个nice app 来练习和测试自己

    【讨论】:

    • 感谢您的回复!我试试这个但得到错误:TypeError: Cannot read property '0' of null
    • 你能把字符串发给我吗? - 按照你的例子它应该可以工作
    • 谢谢!我正在使用这个字符串:https://firebasestorage.googleapis.com/v0/b/project-xxxx.appspot.com/o/folder_lib%2Fphoto_xxx-xxx-xxx.png?alt=media&token=xxx-xxx-xxx20-5-2016.csv?alt=media&token=b5d45a7f-3ab7-4f9b-b661-3a2187adxxxx
    • 你是如何使用它的?我用您刚刚发布的字符串更新了我的答案,它可以工作。点击run code snippet它会显示结果
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-10-15
    • 2011-12-14
    • 1970-01-01
    • 2011-05-22
    • 2017-09-24
    相关资源
    最近更新 更多