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
"xxx_456".slice(3)
"xxx_456".slice(0, -3)
당신은 그것을 분할하고 마지막 요소를 얻을 수 있습니다
var string="xxx_456";
var a=string.split("_");
alert(a[1]); #or a.pop
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
역 메서드가 문자열을 반환하면 더 깨끗한 솔루션을 위해 메서드를 연결하십시오.
미친 정규식 접근 방식
"xxx_456".match(/...$/)[0] //456
_.
여기 내 사용자 정의 함수입니다
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);
이 기능은 역 인덱스에 대해 작동합니다.
"xxxxxxx_456".slice(-3)
이것은 오래된 질문이지만 user187291의 답변을 지원하기 위해
원하는 부분 문자열의 고정 길이의 경우 substr()짧고 읽기 쉬운 구문에 대해 음의 인수와 함께 사용 합니다.
"xxx_456".substr(-3)
지금은 일반 브라우저와 호환 되며 아직 엄격하게 사용되지 않습니다.