【问题标题】:Replacing filename with a Regex in JavaScript在 JavaScript 中用正则表达式替换文件名
【发布时间】:2011-03-16 20:36:27
【问题描述】:

我需要在 JavaScript 中使用正则表达式替换一个按钮,并且想知道如何做到这一点。我知道如何获取按钮的 src,但我需要获取文件名并根据可以切换的两个选项添加一些文本“-next”或删除“-next”。这是两个不同的文件名:

/images/button.png
/images/button-next.png

任何帮助将不胜感激。

【问题讨论】:

  • 听起来您可能想在这里使用 CSS,但如果没有完整的示例,我无法确定。你能发布一个更现实的例子吗?

标签: javascript regex


【解决方案1】:

要在最后一个点之前插入-next,您可以这样做

result = subject.replace(/(?=\.[^.]+$)/g, "-next");

删除最后一个点之前的-next

result = subject.replace(/-next(?=\.[^.]+$)/g, "");

【讨论】:

    【解决方案2】:
    if (url.match(/-next/))
        newUrl = url.replace("-next.", ".");
    else newUrl = url.replace(".", "-next.");
    

    【讨论】:

      【解决方案3】:
      function toggle(img){
          if(img.src.match(/-next\.[^\.]+$/)){
              img.src=img.src.replace(/\.[^\.]+$/,'-next$&');
              return true;
          }
          img.src=img.src.replace(/-next(\.[^\.]+)$/,'$1');
          return true;
      }
      

      适用于任何文件扩展名。

      【讨论】:

        【解决方案4】:

        在我看来你需要的很简单:

        if (addingNext) {
            return str.replace(/\.png$/i, '-next.png');
        } else {
            return str.replace(/-next\.png$/i, '.png');
        }
        

        【讨论】:

          【解决方案5】:
          var src1 = "/images/button.png";
          var src2 = "/images/button-next.png";
          
          src1 = src1.replace(/\.(\w+)/, "-next.$1");
          src2 = src2.replace("-next", "");
          

          【讨论】:

            【解决方案6】:
            var str = "/images/button.png";
                var idx = str.lastIndexOf('.');
                var replValue = "-next";
                var newStr = str.substring(0,idx) + replValue +
            str.substring(idx);
            

            可能有更有效的方法,但这会奏效。您还想测试 no 。成立。您也可以使用正则表达式,但这更明确。

            【讨论】:

              猜你喜欢
              • 2014-01-26
              • 2010-11-12
              • 2016-09-23
              • 1970-01-01
              • 1970-01-01
              • 2013-01-12
              • 1970-01-01
              • 1970-01-01
              • 2017-10-29
              相关资源
              最近更新 更多