【问题标题】:How can I remove dynamic data in string before a value in that string? / using Lodash's _.trimStart with dynamic data?如何在该字符串中的值之前删除字符串中的动态数据? / 使用 Lodash 的 _.trimStart 和动态数据?
【发布时间】:2016-05-03 05:45:54
【问题描述】:

我正在处理从服务器返回的urls,我无法控制该服务器的位置,有时urls 在前面返回额外数据。 比如

有时它会返回这个

https://example.com/image/5119b3905.jpg

这个我可以使用,但有时它会返回类似这样的东西

https://d1yww.cloudfront.net/9MA=/670x670/example.com/image/5119b3905.jpg

我想使用删除 example.com 之前的所有内容,为此我可以使用类似 lodash 的 _.trimStart 方法

    _.trimStart('https://d1yww.cloudfront.net/9MA=/670x670/example.com/image/5119b3905.jpg',
   'd1yww.cloudfront.net/9MA=/670x670');

但是d1yww.cloudfront.net/9MA=/670x670' 对我来说从来都不是静态的,我不知道如何获取动态数据以使用_.trimStart,而且我没有看到任何其他有用的 lodash 方法,我也不知道任何香草 javascript 的。

TLDR:如何在字符串中的值之前删除字符串中的动态数据(在本例中,example.com 之前的所有内容)

【问题讨论】:

    标签: javascript string lodash trim


    【解决方案1】:

    你不需要 lodash 来做到这一点

    var str = 'https://d1yww.cloudfront.net/9MA=/670x670/example.com/image/5119b3905.jpg'
    str.substr(str.indexOf('example.com'))
    

    【讨论】:

      【解决方案2】:

      您可以搜索正则表达式

      对于Example

      /\/([-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b)\//g

      然后寻找第二个匹配项

      【讨论】:

      • 谢谢,这看起来很有帮助,也谢谢你的例子,我没有用过多的正则表达式工作,但看起来这将是我的解决方案
      猜你喜欢
      • 2023-04-01
      • 1970-01-01
      • 2015-11-14
      • 2019-10-15
      • 1970-01-01
      • 2021-05-30
      • 1970-01-01
      • 2018-07-05
      • 2018-09-20
      相关资源
      最近更新 更多