2017-06-13 13 views
0

は、私のような文字列を持っているJavaScriptの表現しますabc_startで始まりabc_endで終了するコンテンツだけが残ります。 node.jsでどうすればいいですか?出力:例えばのためにキープ文字列の間に2つの単語ノードjsが

リンクabc_end

を作るための4つのスペース abc_start abc_endによって abc_startインデントコード私が使用してみました:str.split('abc_start').pop().split('abc_end').shift();

しかし、私は希望をgetttingありませんよ助けてください。以下は

+0

あなたは別の簡単な例を与えることができますか?あなたが何をしたいかわからない – RaphaMex

+0

abc_startとabc_endの間の内容だけを残して、編集を確認してください – user8151624

答えて

0
<script> 
function myFunction() { 
    var str = "abc_start indent code by 4 spaces abc_end"; 
    var n = str.indexOf("abc_start "); 
    var m = str.indexOf("abc_end"); 
    var res = str.slice(n+9, m-1);//Since you already know the length of the string "abc_start" that you want out of the way 
    document.getElementById("demo").innerHTML = res; 
} 
</script> 
+0

abc_startとabc_endは複数回存在する可能性があります – user8151624

+0

サンプルは問題のあいまいさを明らかにする良い方法です。 さらに、結果を得るために上記の答えを遊ぶことができると思うが、サポートサンプルを投稿して、バグが何であるかを知ることができます。 –

+0

サンプル:var str = putは段落の間に戻りますabc_startインデントコードを4つのスペースで区切りますabc_end> abc_start行の先頭にリンクabc_endを作成します。 – user8151624

0

このシナリオを解決するためのコードスニペットです:

var str = 'xxxadasyyydsdsxxxadadyyy'; 
var start = 'xxx'; 
var end = 'yyy' 
var res = []; 
find(); 
function find() { 
    var initialIndex = str.indexOf(start); 
    var lastIndex = str.indexOf(end); 
    if(initialIndex > -1 && lastIndex > -1 && initialIndex < lastIndex) { 
     res.push(str.substring(initialIndex, lastIndex + start.length)); 
     str = str.substring(lastIndex + start.length); 
     find(); 
    } else { 
     return; 
    } 
} 
console.log(res); 
関連する問題