Javascript没有替换字符串

Mr.*_*Web 1 javascript

我有一个字符串以这种方式格式化到我的WebApp:

GPL.TU01<50;0;100;0;0>

我不得不这样说:

GPL.TU01
<
50;
0;
100;
0;
0
>
Run Code Online (Sandbox Code Playgroud)

这就是我正在使用的:

var GET_result_formatted = GET_result;
global_file_content = GET_result;
GET_result_formatted = GET_result_formatted.replace("<", "\r<\r");
GET_result_formatted = GET_result_formatted.replace(';', ";\r");
GET_result_formatted = GET_result_formatted.replace(">", "\r>");
$('#ModalGPLTextarea').val(GET_result_formatted);
Run Code Online (Sandbox Code Playgroud)

但令人遗憾的结果是:

GPL.TU01
<
50;
0;100;0;0
>
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

Cer*_*rus 8

.replace仅在传递字符串时替换第一个匹配项.
使用正则表达式代替;:

GET_result_formatted = GET_result_formatted.replace("<", "\r<\r");
GET_result_formatted = GET_result_formatted.replace(/;/g, ";\r");
GET_result_formatted = GET_result_formatted.replace(">", "\r>");
Run Code Online (Sandbox Code Playgroud)

g/;/g是一个"全球性"的标志,这意味着它将替换所有的出现;.


这些行也可以缩短很多,因为.replace可以链接:

var GET_result_formatted = GET_result.replace("<", "\r<\r")
                                     .replace(/;/g, ";\r")
                                     .replace(">", "\r>");
global_file_content = GET_result;
$('#ModalGPLTextarea').val(GET_result_formatted);
Run Code Online (Sandbox Code Playgroud)

注意;前两行末尾的缺失.