1

我想使用 jquery get 函数读取一个 html 文件,替换一些字符然后显示结果。我写了get函数,可以替换文本。表中有很多行。行内的所有数据都显示为文本。行以空格结尾;所以我想替换“;” 每行的字符。但是下面的代码只是替换了第一行的字符。我怎样才能替换所有“;” 所有行的字符?

$.ajax({
        url: 'http://url',
            type: 'GET',
            success: function(data) {
            var def = $(data).find('tbody#div.divWord').html();

                $('#def').append('<p><b>' + word + '</b>:' + def + '</p>');

                $("div").each(function() {
                    var text = $(this).text();
                    text = text.replace("  ;", "@");
                    $(this).text(text);
                });

            },
            error: function(data) {
                alert('error'); 
            }
        });
4

3 回答 3

2

Replace 函数默认只匹配第一个结果。

如果要替换每一次出现,则必须采用正则表达式并设置“全局标志”:

text = text.replace(/ ;/g, "@");

或者

text = text.replace(/\s;/g, "@");

where\s匹配空白字符。

或者

text = text.replace(new RegExp(" ;","g"),"@");
于 2012-06-08T08:37:27.890 回答
1
text = text.replace("  ;", "@"); -> text = text.replace(/  ;/g, "@");
于 2012-06-08T08:35:23.297 回答
1

在替换中使用正则表达式,以便您可以指定全局 (g) 标志:

text = text.replace(/  ;/g, "@");
于 2012-06-08T08:35:58.737 回答