0

我对内容替换功能有一个后续问题:

这是我当前的内容替换功能:

content = content.replace(/(<t t>(.*?)<t t>)/g, function(m,p1,p2){
    return p2,p1.replace(/     /g,"_").replace(/<t t>/g,"<html>");
});

当我运行时:

This <t t>this a test<t t> of 

通过我的 HTML 处理文本区域:

<textarea id="content" cols="48" rows="8"></textarea><br />
<input type="button" value="Process" onclick="process()" />

我将收到这个作为输出:

This <t_t>this_a_test<t_t> of the replace.

而不是我想要的:

This <t d>this_a_test<t d> of the replace.

我知道原因

<t t> 

不替换为

<t d>

是因为我的函数正在寻找一个空格,然后会省略那个空格并创建一个下划线。但我无法弄清楚如何不发生这种情况,同时仍然在我的两个标签中用下划线替换空格,例如

this a test

会变成

this_a_test

我上一个问题的回答者使用了这个有用的资源.replace() 方法来帮助我理解,但令我懊恼的是,我自己无法弄清楚这一点。非常感谢您的帮助,如果需要,这里是我的示例的链接

4

1 回答 1

0

所以,根据你的评论...

...所以当“这个<t t>这是一个替换的测试<t t>”时。输入到我的过程文本区域,结果将是这个“替换的这个 <t d>this_a_test<t d>”...

...你可以简单地做:

content.replace(/<t t>/g, "<t d>");

请记住,/g正则表达式中的标志匹配测试字符串中的所有模式(g 代表“全局”)。

于 2013-02-17T22:17:41.467 回答