2017-03-25 9 views
0
var str = document.getElementById("kb").value.split('\\n'); 
console.log(str); 
for(var i=0; i<str.length;i++){ 

    document.getElementById("demo").innerHTML = str[i]; 
    var token = str[i].split(/[\[\]]|,+/).join(' '); 
    document.getElementById("demo3").innerHTML = token; 
    for(var j=0; j<token.length; j++){ 
     alert(token[j]); 
     console.log(token); 
    } 

} 

この場合、テキストエリアがあり、 '\ n'、 '['、 ']'と '、'。split関数の結果は、単語ではなく毎回私に文字を与えています

これを実行すると、単語全体ではなく、一度に1文字だけ表示される警告ボックスが表示されます。

私のテキストエリアは次のとおりです。

[幼児]

[¬Toddler、子供] ...

私はトークンがしたい[0]幼児可能にする、[1]¬Toddlerこととトークンにトークン[2その後
var token = lines[i].split(/[\[\]]|,+/).join(' ');
Y:]

はあなたにここに文字列を返しますjoinあなたのコードで

+0

あなたは内部ループ内に文字を取得していますが、これは 'token'文字列を繰り返します。それは期待されるべきです。多分、あなたがやっている '.join(" ")について忘れていたでしょうか? –

+0

あなたはあなたのテキストエリアのコンテンツを投稿することもできます – mehulmpt

+0

トークンは文字列であり、アラートはトークンの各文字に対して与えられました - アラート(トークン[j]);あなたはその問題に直面しています – Len

答えて

1

ありがとうなど、子供であることをこの文字列の文字を反復処理します。ここ

は、固定された溶液(これもon jsfiddle)である:

var lines = document.getElementById("kb").value.split('\\n'); 
 
console.log(lines); 
 
for(var i=0; i < lines.length;i++){ 
 

 
    document.getElementById("demo").innerHTML = lines[i]; 
 
    // var token = lines[i].split(/[\[\]]|,+/).join(' '); // `join` returns string! 
 
    var tokens = lines[i].split(/[\[\]]|,+/).filter((str) => str.trim()); 
 
    document.getElementById("demo3").innerHTML = tokens; 
 
    for(var j=0; j<tokens.length; j++){ 
 
     alert(tokens[j]); 
 
     console.log(tokens); 
 
    } 
 

 
}
<textarea id="kb">[Toddler] [¬Toddler,Child]</textarea> 
 
<div id="demo"></div> 
 
<div id="demo3"></div>

Array.filterは空白トークンを除去するarrow functionと共に使用されます。

+0

ありがとうございました! – lfarr

関連する問題