【问题标题】:How can I replace "\-" to "- " in the url with JS? [duplicate]如何用 JS 将 url 中的“\-”替换为“-”? [复制]
【发布时间】:2014-09-22 08:03:08
【问题描述】:

我有文字:

https://youtu.be/iOA7NUI\-9Xhwvideo\-one\-

我需要用JS替换\--,所以我得到:

https://youtu.be/iOA7NUI-9Xhwvideo-one-

【问题讨论】:

  • 目前这是最好的解决方案return text.replace(/(\S)(\\)(-)(\S)/g, "$1$3$4");

标签: javascript jquery regex


【解决方案1】:

/(^|[^ ])\\-($|[^ ])/g 替换为$1-$2

$1 指的是第一个捕获组($2 相同)。

Debuggex Demo

【讨论】:

    【解决方案2】:

    只需使用replace 方法并使用下面的正则表达式来匹配仅包含在URL 中的\-。我使用了 URL 中没有的空间逻辑。

    \\-(?=\S)
    

    DEMO

    模式说明:

      \\                       '\'
      -                        '-'
      (?=                      look ahead to see if there is:
        \S                       non-whitespace (all but \n, \r, \t, \f, and " ")
      )                        end of look-ahead
    

    【讨论】:

    • 如果破折号位于 url/word 的末尾会怎样?
    • @OGHaza 在模式\\-(?=\S|$) 中添加$DEMO
    • 我的意思是 demo,但 OP 要求并没有明确说明什么是必要的。显然,您的原始答案解决了他给定示例的问题。
    • @OGHaza 感谢您的时间和测试,但有很多排列和组合。我需要有关规则的更多信息。需要与 OP 进行验证。
    【解决方案3】:

    使用替换javascript方法!

        text = text.replace('\-', '-');
    

    【讨论】:

    • 你不认为它会取代所有- OP 只在哪里寻找 url。
    猜你喜欢
    • 1970-01-01
    • 2022-10-13
    • 1970-01-01
    • 1970-01-01
    • 2013-11-02
    • 1970-01-01
    • 2014-10-16
    • 2017-05-17
    • 2011-10-24
    相关资源
    最近更新 更多