我給出了一個字符串數組。它是一個帶括號的動作的文本。防爆。如何使用Javascript將一個數組的字符串拆分成兩個組合
"John sees his neighbor and greets 'Hello!' [waves]. But she didn't hear him."
最終的結果,我想是
actionArray = " [waves]
speechArray = "John sees his neighbor and greets 'Hello!'. But she didn't hear him."
的actionArray將被隔開用於每個字符所以動作標籤將是對動作期間speechArray的頂部。我已經用下面的方法解決了這個問題。
var array = data.toString().split("\n");
for(i in array) {
var actionArray = "";
var speechArray = "";
for (var letter in array[i]){
if (array[i][letter] == "["){
actionArray += array[i][letter];
letter++;
while(array[i][letter] !== "]"){
actionArray += array[i][letter];
letter++;
}
if (array[i][letter] == "]"){
actionArray += array[i][letter];
}
}
if (array[i][letter] !== "["){
speechArray += array[i][letter];
actionArray += " ";
}
因此,爲了提取與動作支架字符串的一部分,我有一個,如果方法找到「[」如果確實如此,那將它添加到actionArray,與IF和增加保持actionArray直到找到結束標記「]」
它的工作原理,但計數器letter
不會繼續在那裏我找到關閉標籤後離開,所以整個字符串最終還是被複制到speechArray。然後我最終得到像這樣的東西
actionArray = " [waves]
speechArray = "John sees his neighbor and greets 'Hello!'.[waves] But she didn't hear him."
我是新來的Javascript,沒有使用指針我不知道如何處理這個。有人能指出我正確的方向嗎?謝謝!
使用正則表達式與[replace](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/replace) – Ammar
這是有點不清楚你想要什麼做。你的變量的名字是「Array」,但是你寫的值看起來像字符串。 – Will
發佈了一個解決方案,您需要爲每個字符串需要一個'replace'語句(一個語句用於actionString,一個用於speechString)。如果你想要看看它。如果您有任何問題,請留下評論:) –