Javascript没有替换字符串

时间:2015-11-18 12:04:04

标签: javascript

我有一个字符串以这种方式格式化我的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
>

我做错了什么?

1 个答案:

答案 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);

注意前两行末尾缺少;