需要帮助检查文本是否包含要搜索的字符串。
说我有文字
“somerandomtextstringexampleexample_1”
我想比较一下这个String
“example_1_e23wet_est1”
现在因为文字包含“example_1”我希望该功能返回“example_1”而不也是“示例”。 (但是如果字符串是“example_4_e23wet_est1”那么它应该只返回“example”
因此该函数需要2个参数
function searchForString(text,stringToCompare){
var foundstring;
...
if(foundstring)
return foundstring//In this case "example_1"
}
但是,由于“indexOf”在这里不起作用,我很遗憾如何继续这里。
提前致谢=)
答案 0 :(得分:1)
如果您想要最大的公共子字符串,可能需要查看此处:largest common substring implementation并在此discussion about suffix tree for that matter:)
答案 1 :(得分:0)
调用 searchForString(“somerandomtextstringexampleexample_1”,“example_1_e23wet_est1”);
返回匹配列表。 例如在这种情况下:[“e”,“ex”,“example”,“e”,“example_1”,“e”] ...... 拿最好的。
function searchForString(text, searchString) {
var i, max, match = '', matches = [], str;
function matchingStr(string, searchString) {
var i = 0,
j = 0,
matchStr = '',
strLength = string.length,
sstrLength = searchString.length;
while (string[i] === searchString[j] &&
i < strLength &&
j < sstrLength) {
matchStr += string[i];
i++;
j++;
}
return matchStr;
}
for (i = 0, max = text.length; i < max; i++) {
str = (i === 0) ? text : text.slice(i, max);
console.log("str: " + str);
console.log(match);
match = matchingStr(str, searchString);
if (match.length !== 0) {
matches.push(match);
}
}
return matches;
}