如何比较除了最后12位数之外的2个字符串中的所有内容

时间:2011-01-31 12:33:47

标签: javascript html

嗨我想检查任意数量的字符串的相似性,除了最后12个字符。喜欢这个

这两个被认为是相似的

CXS101289_LL_20_P11_101029080840 /

CXS101289_LL_20_P11_101105125656 /

和这2

CXS101289_LLV_IC_10_P163_110121114144 /

CXS101289_LLV_IC_10_P163_110124114042 /

但这些不是

这2

CXS101289_LL_20_P11_101029080840 /

CXS101289_LL_21_P11_101105125656 /

和这2

CXS101289_LLV_IC_10_P162_110121114144 /

CXS101289_LLV_IC_10_P163_110124114042 /

因此,您可以看到字符串始终以表示日期的12位数结尾。所以我想比较字符串中的所有内容,最后12个字符,我怎么能用一个简单的方法呢?

您可以假设我将所有字符串存储在像这样的数组中进行比较

var allStringsToCompare = ["CXS101289_LLV_IC_10_P162_110121114144","CXS101289_LLV_IC_10_P163_110124114042","CXS101289_LL_21_P11_101105125656"]

4 个答案:

答案 0 :(得分:4)

使用String.slice():

"CXS101289_LL_20_P11_101029080840/".slice(0, -12);

这样:

var resultArray = [];
for (var i = 0; i < allStringsToCompare.length; i++) {
    resultArray.push(allStringsToCompare[i].slice(0, -12));
}

或者(如果你想更改allStringsToCompare):

for (var i = 0; i < allStringsToCompare.length; i++) {
    allStringsToCompare[i] = allStringsToCompare[i].slice(0, -12));
}

答案 1 :(得分:1)

使用javascript的substring功能。

答案 2 :(得分:0)

比较适当的子串:

string.substr(0, string.length - 12)

答案 3 :(得分:0)

知道字符串的不同之处和方式可能很重要。我在JavaScript中编写了一个模糊字符串比较代码来处理这样的任务。具体逻辑是http://prettydiff.com/lib/diffview.js

的charcomp函数

模糊字符串比较查找两个字符串之间的相等性。在两个字符串不相等的那一刻,应用包装器来显示字符串停止相同的位置。应用一些高级算法逻辑来确定两个字符串中存在的下一个可用字符,此时包装器终止。在两个字符串的范围内重复该逻辑。

您可以直接使用Pretty Diff工具查看其实际效果。最后12个字符将显示为差异,或者您可以使用子字符串方法剪切这些字符,如其他人所建议的那样。您可以将此方法用作:

input.substring(0, input.length - 12);