这是我的功能:
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
答案 0 :(得分:1)
首先想到的方法如下:
content = content.replace(/(<tt>(.*?)<tt>)/g, function(m,p1,p2) {
return p2.replace(/ /g,"_");
});
.replace()
method接受第二个参数中的回调,以便您可以对匹配进行自定义处理。回调接收匹配和子匹配作为参数,无论您的回调返回什么都将用作替换文本,因此您可以替换第二个子匹配上的空格。