[javascript] 역 색인이있는 부분 문자열

xxx의 길이가 무제한 인 “xxx_456″에서 “456”을 어떻게 추출 할 수 있습니까?



답변

var str = "xxx_456";
var str_sub = str.substr (str.lastIndexOf ( "_") + 1);

끝이 항상 세 자리가 아닌 경우 (밑줄로 구분). 끝 구분자가 항상 밑줄이 아닌 경우 정규식을 사용할 수 있습니다.

var pat = / ([0-9] {1,}) $ /;
var m = str.match (pat);


답변

slice IE 및 기타 브라우저에서 잘 작동하며 사양의 일부이며 가장 효율적인 방법이기도합니다.

alert("xxx_456".slice(-3));
//-> 456

slice 메서드 (문자열)-MSDN
slice-Mozilla 개발자 센터


답변

문자열 방법을 사용하면 시작과 끝 인덱스를 지정할 수 있습니다 :

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와 호환되지 않습니다.


답변

문자열 끝의 모든 자릿수에 대한 간단한 정규식 :

'xxx_456'.match(/\d+$/)[0]; //456
'xxx_4567890'.match(/\d+$/)[0]; //4567890

또는 실제로 분할 / 팝을 사용하십시오.

('yyy_xxx_45678901').split(/_/).pop(); //45678901


답변

String.prototype.reverse( ) {
     return Array.prototype.slice.call(this)
          .reverse()
          .join()
          .replace(/,/g,'')
}

역 문자열 방법 사용

var str = "xxx_456"
str = str.reverse() // 654_xxx 
str = str.substring(0,3) // 654 
str = str.reverse() //456

역 메서드가 문자열을 반환하면 더 깨끗한 솔루션을 위해 메서드를 연결하십시오.