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

content replace function: replacing a space with an underscore

本文关键字:替换 下划线 空格 功能      更新时间:2023-09-26

这是我的函数:

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>

我这个问题的目的是想知道我是否可以用"下划线"代替"空格"例如,目前,如果您从上面获取我的示例代码,并通过我的函数运行它,您将省略以下代码:

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示例

首先想到的方法如下:

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

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

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