【问题标题】:Regex to replace slash and numbers with hyphen from URL正则表达式用 URL 中的连字符替换斜杠和数字
【发布时间】:2023-02-07 13:40:19
【问题描述】:

我正在尝试从 url 中删除数字和斜线。首先,我试图删除数字后的斜杠,然后再次用连字符替换剩余的斜杠。

  1. orders/detail/544orders-detail
  2. orders/detail/544/editorders-detail-edit
  3. users/edit/2users-edit

    我已经尝试使用下面的正则表达式,它适用于第二个 senerio 但不适用于第一个

    const className = routeUrl.replace(/([0-9]+)\//, '').replace(/[/]/g, '-');

【问题讨论】:

    标签: javascript regex


    【解决方案1】:

    以下双重替换似乎有效:

    var inputs = ["orders/detail/544", "orders/detail/544/edit", "users/edit/2"];
    for (var i=0; i < inputs.length; ++i) {
        output = inputs[i].replace(//d+/g, "").replace(///g, "-");
        console.log(inputs[i] + " => " + output);
    }

    【讨论】:

      【解决方案2】:

      尝试这个

      const className = routeUrl.replace(/[/0-9]+/g, '-');
      

      【讨论】:

      • 这在第一个和第三个示例的末尾添加了一个额外的 -
      • 如果任何路径中有任何数字,这将失败,如果它以数字结尾,则留下一个尾随破折号(例如orders4you/detail/544 - > orders-you-detail-
      猜你喜欢
      • 1970-01-01
      • 2015-02-06
      • 2012-01-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多