JavaScriptにて,文字列を任意の箇所で分割する方法を考えています.
文字列を選択し,そのスタート位置と終了位置を使って分割したいと考えています.
例:’文字列を任意の箇所で’で分割する. JavaScriptにて,文字列を任意の箇所で分割する方法はありますでしょうか? ↓ ['JavaScripにて,','文字列を任意の箇所で','分割する方法はありますでしょうか?']
現在は愚直に1文字1文字分割しfor文で回しています.ほかの方法がございましたらご教授いただければ幸いです.またJavaScriptを最近始めましたので,アドバイスがあればお願いいたします.
JavaScript
1function(){ 2 var obj = document.getSelection(); 3 var beforeTextArr = document.getElementById('targetText').innerHTML; 4 var afterTextArr = []; 5 if (obj.anchorOffset>0){ 6 var afterText = ''; 7 for(var i=0; i< obj.anchorOffset; i++){ 8 afterText += beforeTextArr[i]; 9 } 10 afterTextArr.push(afterText); 11 12 afterText=''; 13 for(var i=obj.anchorOffset; i<obj.focusOffset;i++){ 14 afterText += beforeTextArr[i]; 15 } 16 afterTextArr.push(afterText); 17 18 afterText=''; 19 for(var i=obj.focusOffset; i<beforeTextArr.length;i++){ 20 afterText += beforeTextArr[i]; 21 } 22 afterTextArr.push(afterText); 23 24 console.log(afterTextArr);//出力 25 }else{ 26 var afterText = ''; 27 for(var i=obj.anchorOffset; i<obj.focusOffset;i++){ 28 afterText += beforeTextArr[i]; 29 } 30 afterTextArr.push(afterText); 31 32 afterText=''; 33 for(var i=obj.focusOffset; i<beforeTextArr.length;i++){ 34 afterText += beforeTextArr[i]; 35 } 36 afterTextArr.push(afterText); 37 38 console.log(afterTextArr);//出力 39 } 40}
追記:
text = 'AAAABBBBCCCC' ↓ 5,6文字目のBBを選択した場合 result=['AAAA','BB','BBCCCC'] 7,8文字目のBBを選択した場合 result=['AAAABB','BB','CCCC'] のようなことです.
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/String/substring
jun68ykt様へのコメントでやりたいことがわからなくなりました。
分割は3つになるわけではないのですよね?で、分割の手掛かりとして何が指定されるのですか?
追記させていただきました.
文字列を選択したところで区切りたいです.
['AA','AABBBBBCCCC']このパターンは一体どこを選択したのですか?
最初のAAもしくは後ろのAABBBBCCCCです.
了解です。ありがとうございます
Zuishin様,部分文字列しか取れないのでできないと思いましたが,そちらでできそうですね.
失礼しました.試してみます.
回答3件
あなたの回答
tips
プレビュー