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

Replace match last instance of pattern in a string

本文关键字:最后一个 模式 实例 字符串 替换      更新时间:2023-09-26

我只想显示-后面的值,如下所示。

    $(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);
    });

该输出

<div id="one">TUVEXYZ</div>
<div id="two">DEFGHIJ-KLMNOPQRS-TUVEXYZ</div>

第一个是有效的,因为只有一个破折号,但是当有多个破折点时,我的代码就不起作用了,因为它只是在寻找第一个。我该怎么去找最后一个呢?

如果我的代码能像我希望的那样工作,我希望我的最终结果是这样的。

<div id="one">TUVEXYZ</div>
<div id="two">TUVEXYZ</div>

使用的lastIndexOf

var dd = cc.substring(cc.lastIndexOf("-") + 1);

使用正则表达式:

var myregexp = /[^-]*$/;
var result = myregexp.exec(subject)[0];

此正则表达式匹配任意数量的非短划线字符,这些字符锚定在字符串的末尾,从而有效地匹配最后一个短划线之后的所有字符(如果没有短划线,则匹配整个字符串)。

这可能是您要查找的正则表达式:)

var.replace( /(?:.*)'-(.*?)$/, $1 ); // or "$1", not really shure in JS