内容替换功能:用下划线替换空格

时间:2013-02-17 03:00:21

标签: javascript replace

这是我的功能:

function process() {
var content = document.getElementById('content').value;
content = content.replace(/(<tt>(.*?)<tt>)/g, '$2');
document.getElementById('content').value = content;
}

这是我的HTML:

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

示例代码:

<tt>hello<tt>

我的问题的目的是找出我是否可以替换&#34;空间&#34;用&#34;下划线&#34; 例如,目前如果您从上面获取我的示例代码并通过我的函数运行它,您将省略以下代码:

hello

如果您要运行此代码:

<tt>hel lo<tt>

通过该功能,这将是您的结果:

hel lo

我希望的结果是:

hel_lo

用空格替换空格。我意识到我可以插入这样的东西:

content = content.replace(/()/g, '_');

进入我的函数,但如果要这样做,然后运行以下代码:

<tt>d j<tt>1 2

然后结果将是

d_j1_2

而不是我希望的那个

d_j1 2

总结一下,我想用下划线替换空格,但只能在我的

之间
<tt><tt>

标记。我们非常感谢您的帮助,并且非常感谢您提前。我也会将此链接提供给我的示例:jsfiddle example

1 个答案:

答案 0 :(得分:1)

首先想到的方法如下:

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

.replace() method接受第二个参数中的回调,以便您可以对匹配进行自定义处理。回调接收匹配和子匹配作为参数,无论您的回调返回什么都将用作替换文本,因此您可以替换第二个子匹配上的空格。

演示:http://jsfiddle.net/WVUYX/42/