我在閱讀textarea的值時保留製表符的問題。 我添加的標籤如下:在通過JavaScript添加後從textarea中讀取時保留標籤
$("#code-editor").keydown(function (e) {
if (e.keyCode === 9) { // tab was pressed
// get caret position/selection
var start = this.selectionStart;
var end = this.selectionEnd;
var $this = $(this);
var value = $this.val();
// set textarea value to: text before caret + tab + text after caret
$this.val(value.substring(0, start)
+ "\t"
+ value.substring(end));
// put caret at right position again (add one for the tab)
this.selectionStart = this.selectionEnd = start + 1;
// prevent the focus lose
e.preventDefault();
}
});
的選項卡正確插入,並預期將顯示在文本區域。 當我然後讀取textrea的值並嘗試用html格式替換爲製表符時出現問題。
$("#code-editor").keyup(function (e) {
var value = $(this).val();
//Do formatting
var lines = value.split("\n");
var newvalue = "";
for (var i = 0; i < lines.length; i++) {
lines[i].replace(/\t/g, "<span style='padding-left:3em'></span>");
lines[i] += "<br />";
newvalue += lines[i];
}
$('#editor-displayarea').html(newvalue);
});
我發現從textarea中讀取標籤時似乎不會保留。
有沒有辦法解決這個問題或者我採取了錯誤的方法?
謝謝。
更新: 我曾嘗試在正則表達式中使用一些變體,如下面的註釋中所述,但無濟於事。
你應該逃避你的正則表達式的標籤,我認爲:行[I] .replace(/ \\ T/G,... –
我已經嘗試過,我也嘗試使用RegExp對象,如var patt = new RegExp(「\ t」,「g」);以及新的RegExp(「\\ t」,「g」),但都不是當我調試javascript並閱讀textarea的值時,它不會顯示製表符,但回車符是可見的。 – dekin88