具有反向索引的子string
如何从“xxx_456”中提取“456”,其中xxx的长度不确定?
var str =“xxx_456”; var str_sub = str.substr(str.lastIndexOf(“_”)+ 1);
如果结尾不是三位数字(用下划线分隔)。 如果结尾分隔符不总是下划线,那么你可以使用正则expression式:
 var pat = /([0-9] {1,})$ /;
 var m = str.match(pat);
 slice在IE和其他浏览器中工作得很好,它是规范的一部分,也是最有效的方法: 
 alert("xxx_456".slice(-3)); //-> 456 
  切片方法(string) –  MSDN 
  片 –  Mozilla开发人员中心 
子string方法允许您指定开始和结束索引:
 var str = "xxx_456"; var subStr = str.substring(str.length - 3, str.length); 
你可以把它分开,并得到最后一个元素
 var string="xxx_456"; var a=string.split("_"); alert(a[1]); #or a.pop 
 alert("xxxxxxxxxxx_456".substr(-3)) 
警告:根据mdc ,不IE兼容
一个疯狂的正则expression式的方法
 "xxx_456".match(/...$/)[0] //456 
这是我的自定义function
 function reverse_substring(str,from,to){ var temp=""; var i=0; var pos = 0; var append; for(i=str.length-1;i>=0;i--){ //alert("inside loop " + str[i]); if(pos == from){ append=true; } if(pos == to){ append=false; break; } if(append){ temp = str[i] + temp; } pos++; } alert("bottom loop " + temp); } var str = "bala_123"; reverse_substring(str,0,3); 
此function适用于反向索引。
 String.prototype.reverse( ) { return Array.prototype.slice.call(this) .reverse() .join() .replace(/,/g,'') } 
使用反向string方法
 var str = "xxx_456" str = str.reverse() // 654_xxx str = str.substring(0,3) // 654 str = str.reverse() //456 
如果你的逆向方法返回string,然后链接一个更干净的解决scheme的方法。
简单的正则expression式,用于string末尾的任何数字:
 'xxx_456'.match(/\d+$/)[0]; //456 'xxx_4567890'.match(/\d+$/)[0]; //4567890 
或确实使用split / pop:
 ('yyy_xxx_45678901').split(/_/).pop(); //45678901