替换字符串中匹配模式的最后一个实例

ak8*_*k85 0 javascript replace

我想只显示 - 之后的值 - 如下所示.

    $(function(){
        var aa = "ABCDEFGHIJKLMNOPQRS-TUVEXYZ";
        var bb = aa.substring(aa.indexOf("-") + 1);
        $('#one').text(bb);
    });

    $(function(){
        var cc = "ABC-DEFGHIJ-KLMNOPQRS-TUVEXYZ";
        var dd = cc.substring(cc.indexOf("-") + 1);
        $('#two').text(dd);
    });
Run Code Online (Sandbox Code Playgroud)

这个输出

<div id="one">TUVEXYZ</div>
<div id="two">DEFGHIJ-KLMNOPQRS-TUVEXYZ</div>
Run Code Online (Sandbox Code Playgroud)

第一个工作,因为只有一个破折号,但是当有多个破折号时,我的代码不起作用,因为它只是寻找第一个 - .我怎么去寻找最后一个?

例如,如果我的代码像我想要的那样工作,我希望我的最终结果看起来像这样.

<div id="one">TUVEXYZ</div>
<div id="two">TUVEXYZ</div>
Run Code Online (Sandbox Code Playgroud)

moh*_*han 6

使用lastIndexOf

var dd = cc.substring(cc.lastIndexOf("-") + 1);
Run Code Online (Sandbox Code Playgroud)

  • `lastIndexOf`将返回-1,因此您的子字符串将是相同的字符串. (2认同)