嗨我想检查任意数量的字符串的相似性,除了最后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"]
答案 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);