這是我的第一個問題,所以如果我搞砸了,請原諒。我是新來的。 Anywho,最近我一直在設計一個函數,它接受一個字符串和2個子字符串,然後返回兩個子字符串位置的數組,以便稍後使用我正在搜索的子字符串的位置對實際字符串進行子字符串。我希望這是有道理的。在2個或更多子串之間獲取文本
function m(s,s1,s2,prevTable){
var a = prevTable || []
if (s.indexOf(s1) > -1 && s.indexOf(s2, s.indexOf(s1)) > -1){
a.push([s.indexOf(s1),s.indexOf(s2, s.indexOf(s1))+s2.length])
s=s.substring(s.indexOf(s2, s.indexOf(s1)+s2.length))
console.log(s)
m(s,s1,s2,a);
}
return a;
}
所以總結它使一個陣列(a)中,發現的s1和s2(加上它自己的長度,使得它包括S2)的源串(一個或多個)中的位置,並將它們添加到陣列,因爲它是自己的數組。 例如a會是:a = [[2,5]],刪除到找到s2的位置(+ s2.length包含s2),然後用新字符串重複它,除非它找不到s1和s2,在這種情況下,它返回一個。
但是,它不工作,因爲我打算它。 在運行此:
var s = "Hey. This is pointless. Middle is always neutral. This is not
pointless."
var a=m(s,"This","pointless.")
for (i=0;i<a.length;i++){
console.log(s.substring(a[i][0],a[i][1]))
}
結果我得到的是:
This is pointless.
dle is always neutral.
當我期待:
This is pointless.
This is not pointless.
此外,有沒有一個名字爲這種技術?