[removed] replace last occurrence of text in a string

后端 未结 14 775
一整个雨季
一整个雨季 2020-12-02 18:13

See my code snippet below:

var list = [\'one\', \'two\', \'three\', \'four\'];
var str = \'one two, one three, one four, one\';
for ( var i = 0; i < list.         


        
相关标签:
14条回答
  • 2020-12-02 18:44

    You can use String#lastIndexOf to find the last occurrence of the word, and then String#substring and concatenation to build the replacement string.

    n = str.lastIndexOf(list[i]);
    if (n >= 0 && n + list[i].length >= str.length) {
        str = str.substring(0, n) + "finish";
    }
    

    ...or along those lines.

    0 讨论(0)
  • 2020-12-02 18:45

    Couldn't you just reverse the string and replace only the first occurrence of the reversed search pattern? I'm thinking . . .

    var list = ['one', 'two', 'three', 'four'];
    var str = 'one two, one three, one four, one';
    for ( var i = 0; i < list.length; i++)
    {
         if (str.endsWith(list[i])
         {
             var reversedHaystack = str.split('').reverse().join('');
             var reversedNeedle = list[i].split('').reverse().join('');
    
             reversedHaystack = reversedHaystack.replace(reversedNeedle, 'hsinif');
             str = reversedHaystack.split('').reverse().join('');
         }
     }
    
    0 讨论(0)
提交回复
热议问题