我给出了一个字符串数组。它是一个带括号的动作的文本。防爆。如何使用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)。如果你想要看看它。如果您有任何问题,请留下评论:) –