0

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

    $(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>
4

3 回答 3

6

使用 lastIndexOf

var dd = cc.substring(cc.lastIndexOf("-") + 1);
于 2013-07-04T12:46:09.673 回答
4

使用正则表达式:

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

此正则表达式匹配任意数量的非破折号字符,锚定到字符串的末尾,它有效地匹配最后一个破折号之后的所有内容(如果没有破折号,则匹配整个字符串)。

于 2013-07-04T12:47:07.667 回答
0

这可能是您正在寻找的正则表达式:)

var.replace( /(?:.*)\-(.*?)$/, $1 ); // or "$1", not really shure in JS
于 2013-07-04T12:47:02.817 回答