我有一个字符串以这种方式格式化我的WebApp:
GPL.TU01<50;0;100;0;0>
我必须这样说:
GPL.TU01
<
50;
0;
100;
0;
0
>
这就是我正在使用的:
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);
但令人遗憾的结果是:
GPL.TU01
<
50;
0;100;0;0
>
我做错了什么?
答案 0 :(得分:8)
.replace
仅在传递字符串时替换第一次出现
改为使用regex代替;
:
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>");
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);
注意前两行末尾缺少;
。