gpt4 book ai didi

javascript - 从两个不同的字符串中选择

转载 作者:行者123 更新时间:2023-11-30 16:49:18 25 4
gpt4 key购买 nike

我的页面收到两个字符串:

var string1 = "_some_specification_ABC_DEFGH_end_code";
var string2 = "_some_specification_34_kj_w7_end_code";

我想把它们不同的地方拿来稍后显示为标题

function selectRelevantInfo (string1, string2) {
// I don't know if some Regex could help here
};

它应该给 string1 ABC_DEFGH 和给 string2 34_kj_w7

我怎样才能实现它?提前致谢。

最佳答案

这是我的尝试,通过一些测试来确保在前缀/后缀不存在或者它们都是字符串等情况下一切正常。

它在本质上与 Pablo 的代码相似,因为它从字符串的前后进行搜索,但不是在每次迭代时使用 indexOf ( accidentally quadratic ),而是进行标量字符比较.该函数将返回一个对象,其中包含前缀和后缀以及去除这些的两个输入字符串。

function findPrePostfix(a, b) {
var minLength = Math.min(a.length, b.length);

// Important initialization and prefix search
var preLen = minLength;
for (var i = 0; i < minLength; i++) {
if (a[i] !== b[i]) {
preLen = i;
break;
}
}

// Similar search for postfix search plus an important initialization
var postLen = minLength - preLen;
for (var i = 0; i < minLength - preLen; i++) {
if (a[a.length - i - 1] !== b[b.length - i - 1]) {
postLen = i;
break;
}
}

return {
a : a.substring(preLen, a.length - postLen),
b : b.substring(preLen, b.length - postLen),
prefix : a.substring(0, preLen),
postfix : a.substring(a.length - postLen, a.length)
};
}

function display(a, b) {
$("body").append("<p>“" + a + "” vs “" + b + "”: <tt>" +
JSON.stringify(findPrePostfix(a, b)) + "</tt></p>");
}
// display = function(a, b) { console.log(findPrePostfix(a, b)) };

display('_some_specification_ABC_DEFGH_end_code',
'_some_specification_34_kj_w7_end_code');

display("abc123", "123");
display("abc", "abc123");

display("abc", "def");
display("abc", "abc");
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

关于javascript - 从两个不同的字符串中选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30760481/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com