2013-08-13 2 views

답변

9

당신은 substring()으로 lastIndexOf()를 사용할 수 있습니다

var str="Hello planet earth, you are a great planet."; 
var n=str.lastIndexOf("planet"); 
var str2 = str.substring(0,n)+" again "+str.substring(n); 
console.log(str2); // Hello planet earth, you are a great again planet. 

을 멋진 기능으로 :

function insertBeforeLastOccurrence(strToSearch, strToFind, strToInsert) { 
    var n = strToSearch.lastIndexOf(strToFind); 
    if (n < 0) return strToSearch; 
    return strToSearch.substring(0,n) + strToInsert + strToSearch.substring(n);  
} 

var str ="This <br> is another <br> string <br> example."; 
var newStr = insertBeforeLastOccurrence(str, "<", " again"); 
console.log(newStr); // This <br> is another <br> string again<br> example. 

아니면 String 방법으로 :

String.prototype.insertBeforeLastOccurrence = function(strToFind, strToInsert) { 
    var n = this.lastIndexOf(strToFind); 
    if (n < 0) return this.toString(); 
    return this.substring(0,n) + strToInsert + this.substring(n);  
} 

var str ="This <br> is another <br> string <br> example."; 
console.log(str.insertBeforeLastOccurrence("<", " again")); 
// Output: This <br> is another <br> string again<br> example. 
console.log(str.insertBeforeLastOccurrence("w00t", " again")); // wont find 
// Output: This <br> is another <br> string <br> example. 
+1

+1 :'str.substring (n)'할까요? – naveen

2

당신은 마지막 발생을 얻을 수 있습니다 lastIndexOf(str)을 사용하는 지정된 문자열. String 또는 string 개체의 멤버 함수입니다. 그러면 다음과 같이 할 수 있습니다 :

var idx = mystr.lastIndexOf("<"); 
if (idx > -1) 
    var outval = mystr.substr(0, idx) + " again" + mystr.substr(idx); 
관련 문제