gpt4 book ai didi

JavaScript 用正则表达式 trim 换行符?

转载 作者:行者123 更新时间:2023-11-29 09:58:16 26 4
gpt4 key购买 nike

我正在使用谷歌翻译来翻译一个文本区域的内容,并用 API 响应填充另一个文本区域。在我的源文本区域中,我正在替换 /n换行 <br />像这样发送查询的换行符:

var query   = $('#textarea-src').val();
var query = encodeURIComponent(query);
var query = query.replace(/\n\r?/g, '<br />'); // replace new lines with line breaks

然后我给 Google 打电话:

$.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);
}
});

问题是 Google 的响应在换行符周围有空格。当我查询 "hello<br />world"法语的回复是"bonjour \u003cbr /\u003e monde"

和我的replace(/ <br \/> ?/g, '\n')正则表达式我可以对此进行更正但是当我查询两个换行符时 "hello<br /><br />world"响应是 "bonjour \u003cbr /\u003e\u003cbr /\u003e monde"

我该如何纠正这个问题?

最佳答案

你可以让两边的空格都可选:

var response = response.replace(/ ?<br \/> ?/g, '\n');

另一个选项是使用 / *<br \/> */g/\s*<br \/>\s*/g .

为清楚起见,我们使用下划线代替空格:
如果您的文本是 "a_<br />_<br />_b" , /_<br \/>_?/g失败,因为第一个匹配消耗了第二个空间(导致 "a\n<br />_b" ),第二个 <br />没有前导空格无法匹配。

关于JavaScript 用正则表达式 trim 换行符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7411511/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com