2016-08-28 3 views
1

織り複数行の文字列を置換:https://mikethedj4.github.io/kodeWeave/editor/#98f122f9b4f7b8f1ae0c945d3087f580が簡単に値に

を私は以下のようなコードで働いているが、それは複数回繰り返しています。これに

基本的に私はこれをオンにしたい....

selected_text = editor.getSelection(); // Need to grab the Active Selection 

editor.replaceSelection("<" + selected_text + ">"); 
editor.focus(); 

....

selected_text = editor.getSelection(); // Need to grab the Active Selection 

editor.replaceSelection("<" + selected_text + ">").focus(); 

は私のためにこれを行いそこコンバータはありますか?

私が使用してみました

....

preview.val(this.value.replace(/;\n   editor.focus();/g,".focus();")) 

が、それは働いていないと、コンソールは私に何:(

$(document).ready(function() { 
 
    var editor = $(".editor"), 
 
     preview = $(".preview"); 
 
    
 
    // Remove new line and insert new line showing the text in value 
 
    editor.keyup(function() { 
 
    preview.val(this.value.replace(/;\n  htmlEditor.focus();/g,".focus();")) 
 
    }).click(function() { 
 
    this.select() 
 
    }) 
 
    
 
    // Easily Select Converted Code 
 
    preview.click(function() { 
 
    this.select() 
 
    }) 
 
    
 
    preview.val(editor.val().replace(/;\n  htmlEditor.focus();/g,".focus();")) 
 
})
body { 
 
    margin: 0; 
 
    background: #333; 
 
} 
 

 
.editor, .preview { 
 
    position: absolute; 
 
    width: 50vw; 
 
    height: 100vh; 
 
    padding: 1em; 
 
    border: 0; 
 
    border-radius: 0; 
 
    resize: none; 
 
} 
 

 
.editor { 
 
    left: 0; 
 
    color: #0b0; 
 
    background-color: #000; 
 
} 
 

 
.preview { 
 
    right: 0; 
 
    background-color: #fff; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 
<textarea class="editor" placeholder="Code with multiple lines here...">   htmlEditor.replaceSelection("{" + selected_text + "}"); 
 
      htmlEditor.focus();   htmlEditor.replaceSelection("{" + selected_text + "}"); 
 
      htmlEditor.focus();   htmlEditor.replaceSelection("{" + selected_text + "}"); 
 
      htmlEditor.focus();   htmlEditor.replaceSelection("{" + selected_text + "}"); 
 
      htmlEditor.focus();   htmlEditor.replaceSelection("{" + selected_text + "}"); 
 
      htmlEditor.focus();   htmlEditor.replaceSelection("{" + selected_text + "}"); 
 
      htmlEditor.focus();   htmlEditor.replaceSelection("{" + selected_text + "}"); 
 
      htmlEditor.focus();   htmlEditor.replaceSelection("{" + selected_text + "}"); 
 
      htmlEditor.focus();   htmlEditor.replaceSelection("{" + selected_text + "}"); 
 
      htmlEditor.focus();</textarea> 
 
<textarea class="preview" placeholder="Generated result here..."></textarea>

答えて

1

あなたのをエスケープする必要を教えてくれありません括弧:htmlEditor.focus\(\);\nの代わりに\s*の代わりにスペースを入れてもらうことをお勧めしますあなた次第です。適切な数のスペース(12の場合は8ではなく、指定した例)を使用するか、または\n *を使用して改行が必要であることを確認してください。

以下の作業のコードを参照してください。

$(document).ready(function() { 
 
    var editor = $(".editor"), 
 
     preview = $(".preview"); 
 
    
 
    // Remove new line and insert new line showing the text in value 
 
    editor.keyup(function() { 
 
    preview.val(this.value.replace(/;\s*htmlEditor.focus\(\);/g,".focus();")) 
 
    }).click(function() { 
 
    this.select() 
 
    }) 
 
    
 
    // Easily Select Converted Code 
 
    preview.click(function() { 
 
    this.select() 
 
    }) 
 
    
 
    preview.val(editor.val().replace(/;\s*htmlEditor.focus\(\);/g,".focus();")) 
 
})
body { 
 
    margin: 0; 
 
    background: #333; 
 
} 
 

 
.editor, .preview { 
 
    position: absolute; 
 
    width: 50vw; 
 
    height: 100vh; 
 
    padding: 1em; 
 
    border: 0; 
 
    border-radius: 0; 
 
    resize: none; 
 
} 
 

 
.editor { 
 
    left: 0; 
 
    color: #0b0; 
 
    background-color: #000; 
 
} 
 

 
.preview { 
 
    right: 0; 
 
    background-color: #fff; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 
<textarea class="editor" placeholder="Code with multiple lines here...">   htmlEditor.replaceSelection("{" + selected_text + "}"); 
 
      htmlEditor.focus();   htmlEditor.replaceSelection("{" + selected_text + "}"); 
 
      htmlEditor.focus();   htmlEditor.replaceSelection("{" + selected_text + "}"); 
 
      htmlEditor.focus();   htmlEditor.replaceSelection("{" + selected_text + "}"); 
 
      htmlEditor.focus();   htmlEditor.replaceSelection("{" + selected_text + "}"); 
 
      htmlEditor.focus();   htmlEditor.replaceSelection("{" + selected_text + "}"); 
 
      htmlEditor.focus();   htmlEditor.replaceSelection("{" + selected_text + "}"); 
 
      htmlEditor.focus();   htmlEditor.replaceSelection("{" + selected_text + "}"); 
 
      htmlEditor.focus();   htmlEditor.replaceSelection("{" + selected_text + "}"); 
 
      htmlEditor.focus();</textarea> 
 
<textarea class="preview" placeholder="Generated result here..."></textarea>

+0

笑私もそのことを考えていませんでした。ありがとう –

1

ことを気にしてください()と。正規表現でエスケープする必要がある特殊文字です。 ()はグループとを囲みます。任意の文字を表します。

私も複数のスペースのために

を検索するために、\ sの+を使用しました

ここで働い例だ

var regex = /;\s+(htmlEditor\.focus\(\);)/g; 
 
$(document).ready(function() { 
 
    var editor = $(".editor"), 
 
     preview = $(".preview"); 
 
    
 
    // Remove new line and insert new line showing the text in value 
 
    editor.keyup(function() { 
 
    preview.val(this.value.replace(regex,".focus();\n")) 
 
    }).click(function() { 
 
    this.select() 
 
    }) 
 
    
 
    // Easily Select Converted Code 
 
    preview.click(function() { 
 
    this.select() 
 
    }) 
 
    
 
    preview.val(editor.val().replace(regex,".focus();\n")) 
 
})
body { 
 
    margin: 0; 
 
    background: #333; 
 
} 
 

 
.editor, .preview { 
 
    position: absolute; 
 
    width: 50vw; 
 
    height: 100vh; 
 
    padding: 1em; 
 
    border: 0; 
 
    border-radius: 0; 
 
    resize: none; 
 
} 
 

 
.editor { 
 
    left: 0; 
 
    color: #0b0; 
 
    background-color: #000; 
 
} 
 

 
.preview { 
 
    right: 0; 
 
    background-color: #fff; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 
<textarea class="editor" placeholder="Code with multiple lines here...">   htmlEditor.replaceSelection("{" + selected_text + "}"); 
 
      htmlEditor.focus();   htmlEditor.replaceSelection("{" + selected_text + "}"); 
 
      htmlEditor.focus();   htmlEditor.replaceSelection("{" + selected_text + "}"); 
 
      htmlEditor.focus();   htmlEditor.replaceSelection("{" + selected_text + "}"); 
 
      htmlEditor.focus();   htmlEditor.replaceSelection("{" + selected_text + "}"); 
 
      htmlEditor.focus();   htmlEditor.replaceSelection("{" + selected_text + "}"); 
 
      htmlEditor.focus();   htmlEditor.replaceSelection("{" + selected_text + "}"); 
 
      htmlEditor.focus();   htmlEditor.replaceSelection("{" + selected_text + "}"); 
 
      htmlEditor.focus();   htmlEditor.replaceSelection("{" + selected_text + "}"); 
 
      htmlEditor.focus();</textarea> 
 
<textarea class="preview" placeholder="Generated result here..."></textarea>

+0

笑私は@smarx答えを見たまで私はそれを忘れてしまった –