我正在使用Google Translate來翻譯textarea的內容並用API響應填充另一個textarea。 在我的源textarea的我與<br />
線替換/n
換行符打破發送這樣的查詢:JavaScript修剪行與正則表達式分裂?
var query = $('#textarea-src').val();
var query = encodeURIComponent(query);
var query = query.replace(/\n\r?/g, '<br />'); // replace new lines with line breaks
然後我打這個電話給谷歌:
$.ajax({
url: apiUrl,
dataType: 'jsonp',
success: function(data) {
var response = data.data.translations[0].translatedText;
var response = response.replace(/ <br \/> ?/g, '\n'); // replace line breaks with new lines
$('#textarea-trg').val(response);
}
});
的問題是,谷歌的迴應在換行符周圍留有空白。 當我查詢"hello<br />world"
在法國的反應是"bonjour \u003cbr /\u003e monde"
隨着我replace(/ <br \/> ?/g, '\n')
正則表達式我可以糾正這一點,但我彼此"hello<br /><br />world"
後查詢的兩個換行符的響應是"bonjour \u003cbr /\u003e\u003cbr /\u003e monde"
我怎樣才能糾正呢?
它提出了一個問題:爲什麼用'
'來代替換行符? – cheeken
@cheeken。我不確定,但對於有效的XHTML,所有標籤都必須關閉(或自行關閉)。 –
@Andrew爲了澄清,'linebreak'指的是'\ n's。我想知道FFish想用'
'來代替'\ n's。如果問題是GET請求和無效字符,那麼可以使用編碼解決。 – cheeken