两个单词之间的Javascript差异

时间:2016-04-30 08:35:21

标签: javascript

你如何发现两个相似词之间的区别?

例如:

  • INSERT INTO Emails(To,Subject,Body,Sender,RecordDT,Sent,SentDT) VALUES (pTo,pSubject,pBody,pSender,pRecordDT,1,pRecordDT); word相比,word,为变量
  • ,this相比,.this为变量
  • .info相比,:info,:为变量

在这种情况下,我们总是知道哪个词更长。对于比较,实际的词总是相同的。只是那个较长的人可能会有一些额外的角色。

我只需要使用javascript即可。

2 个答案:

答案 0 :(得分:3)

您可以尝试检查字符数组之间的差异。

var shortStr = 'info';
var longStr = ':info,';

console.log(Array.from(longStr).filter(function(c) {
    return Array.from(shortStr).indexOf(c) === -1;
}));

答案 1 :(得分:1)

此外,还有更好的方法,检查字符串是否为子字符串,然后从主字符串中删除子字符串:



function checkDiff(a, b) {
  var big = '', small = '';
  if (a.length > b.length) {
    big = a;
    small = b;
  } else {
    small = a;
    big = b;
  }
  if (big.indexOf(small) != -1) {
    return big.replace(small, "");
  } else {
    return false;
  }
}

alert(checkDiff("word", "word,"));
alert(checkDiff("this", ".this"));
alert(checkDiff("info", ":info,"));




我已为您的所有案例添加了演示。它根据发生的位置将值作为单个字符串返回。您也可以使用.split()方法将输出作为数组发送。



function checkDiff(a, b) {
  var big = '', small = '';
  if (a.length > b.length) {
    big = a;
    small = b;
  } else {
    small = a;
    big = b;
  }
  if (big.indexOf(small) != -1) {
    console.log(big.replace(small, "").split(""));
    return big.replace(small, "").split("");
  } else {
    return false;
  }
}

alert(checkDiff("word", "word,"));
alert(checkDiff("this", ".this"));
alert(checkDiff("info", ":info,"));