我想只显示 - 之后的值。如下所示。
$(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>
答案 0 :(得分:6)
使用lastIndexOf
var dd = cc.substring(cc.lastIndexOf("-") + 1);
答案 1 :(得分:4)
使用正则表达式:
var myregexp = /[^-]*$/;
var result = myregexp.exec(subject)[0];
此正则表达式匹配任意数量的非短划线字符,锚定在字符串的末尾,有效地匹配最后一个短划线后面的所有内容(如果没有短划线,则整个字符串)。
答案 2 :(得分:0)
这可能是你正在寻找的正则表达式:)
var.replace( /(?:.*)\-(.*?)$/, $1 ); // or "$1", not really shure in JS