使用Javascript在字符串中查找替换的部分

时间:2018-01-20 12:05:19

标签: javascript

function str_replace(str , part_to_replace , replace_with) { 
var res = str.replace(part_to_replace , replace_with);
return res;
}
console.log(str_replace("amir" , "ir" , "er")) //returns "amer" 

我希望函数返回“e”,这是唯一改变了更换部分的部分,所以我应该如何做到这一点? 提前谢谢。

2 个答案:

答案 0 :(得分:3)

您可以迭代所有字符并仅采用已更改的字符。

function check(a, b) {
    if (a.length !== b.length) { return; }
    
    return b
        .split('')                // take an array
        .filter(function (c, i) { // filter
            return a[i] !== c;    // check characters
        })
        .join('');                // return string
}

function str_replace(str, part_to_replace, replace_with) {
    return str.replace(part_to_replace, replace_with);
}

console.log(str_replace("amir", "ir", "er"));
console.log(check("amir", str_replace("amir", "ir", "er")));

答案 1 :(得分:1)

看起来你想要新字符串中的一个字符数组,这些字符在旧字符串中不存在。这样就可以了:

function getDifference(oldStr, newStr) {
  // .split('') turns your string into an array of characters
  var oldSplit = oldStr.split(''); 
  var newSplit = newStr.split('');

  // then compare the arrays and get the difference
  var diff = [];
  for (var i = 0; i < newSplit.length; i++) {
    if (newSplit[i] !== oldSplit[i]) {
      diff.push(newSplit[i]);
    }
  }
  return diff;
}

var diff = getDifference('amir', str_replace('amir', 'ir', 'er'));
console.log(diff); // e