2017-05-19 9 views
0

Enterキー(キーボードEnterキー)を"<div><br></div>"として扱い、テキストデータを入力するエディタを使用しています。特別なhtmlタグ(タグの組み合わせ)をnullに置き換える

"<div><br></div><div><br></div>" 

私は簡単に文字列がメソッド置き換える使用してタグの組み合わせ(<div><br></div>)を削除することができます:私は出力になるテキストエリア内のキーを入力します使用しています

var myText = myText.replace(/<div><br><\/div>/g,''); 

が、私の問題は

です文字列を入力して2 Enterキーをたどり、再度文字列を入力します。この場合、結果は次のようになります。

hi<div><br></div><div><br></div>hi 

"文字列置換"メソッドの上に適用され、出力が"hi<div>hi</div>"になると、すべてのEnterキー値はなくなります。

しかし、私はその文字列の中にキー値(<div><br></div>)を入力しておきたいと思います。出力は次のようになります

"hi<div><br></div><div>hi</div>" 

したがって、文字列の前後ではなく、文字列の前後にタグを置きたいと思います。

どうすればこの問題を解決できますか?

答えて

0

私は、replaceメソッドまたはregexでデータを操作する必要がない別の方法を提案します。それは

...してくださいユーザータイプながら動作し、中のkeyCodeユーザーの種類によって計算される。

あなたの問題への異なるアプローチが、はるかに手間と読みするのは非常に簡単ずに素敵な方法で動作します私はすぐにこれをコーディングする心を持っている、あなたは、リファクタリング、または正しく整理する必要があります。

var myText = '' 
 

 
window.addEventListener('keydown', handleKeydown, false) 
 

 
function handleKeydown (e) { 
 
if (e.keyCode === 13) { 
 
    handleEnterKey(e) 
 
} else { 
 
    concat(e) 
 
} 
 
console.log(myText) 
 
} 
 

 
function concat (e) { 
 
    return myText += String.fromCharCode(e.which) 
 
} 
 

 
function handleEnterKey (e) { 
 
    return myText += '<div><br></div>' 
 
}

関連する問題