我正在使用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