私は文字列の配列を与えられています。それは大括弧で囲まれたテキストです。 Ex。私が好きな配列の文字列をJavascriptで2つのグループに分割/分割する方法
"John sees his neighbor and greets 'Hello!' [waves]. But she didn't hear him."
最終的な結果は、アクションタグが動作中speechArrayの上になるように、actionArrayは、各文字の間隔を置いて配置されるだろう
actionArray = " [waves]
speechArray = "John sees his neighbor and greets 'Hello!'. But she didn't hear him."
だろう。私は次の方法でこの問題に近づいてきました。
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に追加するかの方法を持っている場合とを加算して保持します私が終了タグを見つけた後に中止したところで、カウンタletter
は動作しません。したがって、文字列全体がspeechArrayにコピーされてしまいます。そして、私はこのような何かを得ることになります
actionArray = " [waves]
speechArray = "John sees his neighbor and greets 'Hello!'.[waves] But she didn't hear him."
私はこれをどのようにアプローチするのかよく分かりませんが、Javascriptの新機能です。誰かが私に彼の正しい方向を教えてもらえますか?ありがとうございました!
あなたが続く1文字以上続くと"]"
含む
"["
以内に始まる文字に一致するように
RegExp
/\[.+\]/
で
String.prototype.match()
、および
String.prototype.replace()
を使用することができます
[置換](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/replace)で正規表現を使用する – Ammar
あなたがしようとしていることは少し不明です行う。あなたの変数の名前は "Array"と言いますが、値を書いたように、文字列のように見えます。 – Will
は、各文字列に対して1つの 'replace'文が必要な解決策を投稿しました(actionStringのための1つの文とspeechStringのための1つの文)。あなたがしたい場合はそれを見てみましょう。ご質問がある場合は、コメントを残してください:) –