我使用下面的JavaScript:JavaScript將換行符分爲兩個?
if (theSelection)
{
for (var i = 0, l = theSelection.length; i < l; i++)
{
if (theSelection[i] == '[' && theSelection[i+1] == 'q') level++;
if (theSelection[i-6] == 'q' && theSelection[i-7] == '/' && theSelection[i-8] == '[') level--;
if (level<1) tmp.push(theSelection[i]);
}
theSelection = tmp.join('');
}
...然後再發送到回覆框除去從文本嵌套引用,但它留下的換行來代替清洗嵌套引號。所以,舉例來說,如果我引用來自用戶1它說後...
Text.
[quote="User 2"]Quote text.[/quote]
More text.
它在回覆框,顯示了...
[quote="User 1"]Text.
More text.[/quote]
我會添加什麼這個JavaScript要麼刪除此空間左右,在回覆框中顯示的最後文本將出現新的限行,只留下兩個換行符之間的空間:
[quote="User 1"]Text.
More text.[/quote]
感謝您的幫助。
編輯:
下面的代碼的大位:
if (theSelection)
{
for (var i = 0, l = theSelection.length; i < l; i++)
{
if (theSelection[i] == '[' && theSelection[i+1] == 'q') level++;
if (theSelection[i-6] == 'q' && theSelection[i-7] == '/' && theSelection[i-8] == '[') level--;
if (level<1) tmp.push(theSelection[i]);
}
theSelection = tmp.join('');
}
if (theSelection)
{
if (bbcodeEnabled)
{
insert_text('[quote="' + username + '"]' + '\n' + '\n' + theSelection + '[/quote]' + '\n' + '\n');
}
else
{
insert_text(username + ' ' + l_wrote + ':' + '\n');
var lines = split_lines(theSelection);
for (i = 0; i < lines.length; i++)
{
insert_text('> ' + lines[i] + '\n');
}
}
}
我放在...
if (theSelection)
{
theSelection = theSelection.replace(/\n{2,}/g, "\n\n");
}
...現有的兩個之間的 「如果(theSelection)」聲明,而且效果很好。剩下的一個問題。嵌套的引用刪除發生在引用文本置於其自己的引號標籤之前,並且在打開引號標籤之後添加兩個換行符。因此,如果引用的帖子在任何原始文本之前包含嵌套引號,那麼上面的代碼生成的文本在開頭處有四個換行符,而不是預期的兩個。因此,我認爲我會需要的地方... theSelection插入它自己的引用標籤內
if (theSelection)
{
theSelection = theSelection.replace(/\n{2,}/g, "\n\n");
}
... 後,在這一點,「如果(theSelection)」似乎不再工作,我對於JavaScript來說,這是如此的新穎,我不知道如何用反映前面「if(theSelection)」語句的輸出的東西來替換「theSelection」。我希望至少有一點意義。
這個工作不錯,但我有我已經編輯到原來的問題一個另一個問題。並感謝您的幫助。 – Yosiah
如果您試圖用2替換3或更多,可以使用'{3,}'減少開銷。使用'{2,}'仍然有效,但是這麼做的意義何在?你也可以做'/ \ n \ n +/g' – vol7ron
@Yosiah使用'.replace(/ \ n {3,}/g,「\ n \ n」)替換(/^\ s + | \ s + $/g,「」)'解決你的新問題。 –