Javascript 用相同数量的字符替换正则表达式

Javascript 用相同数量的字符替换正则表达式,javascript,regex,Javascript,Regex,我需要使用我定义的字符将使用正则表达式找到的内容替换为相同数量的字符 例如: content: "abcdefghi*!?\"asd"; 应成为: content: "-----------------"; 这是我的regexp: new RegExp("('|\").*('|\")", "gm") 这是我从这个答案()中的尝试: 但它不起作用 在此输入上使用它: ::selected { color: purple } a { color: purple } a:hove

我需要使用我定义的字符将使用正则表达式找到的内容替换为相同数量的字符

例如:

content: "abcdefghi*!?\"asd";
应成为:

content: "-----------------";
这是我的regexp:

new RegExp("('|\").*('|\")", "gm")
这是我从这个答案()中的尝试:

但它不起作用

在此输入上使用它:

::selected {
    color: purple
}
a {
    color: purple
}
a:hover {
    color: purple
}
a {
    color: purple
}
a:not("foobar\";{}omg") {
    content: 'example\';{} text';
    content: "example\";}{ text"
}
a {
    color: purple
}
我得到这个输出:

::selected {
    color: purple
}
a {
    color: purple
}
a:hover {
    color: purple
}
a {
    color: purple
}
a:not("-117) {
    content: '-150;
    content: "-184
}
a {
    color: purple
} 
如果我使用regexp将内容替换为
null
,效果很好,因此这不是regex的问题


有什么帮助吗?

替换函数要求正则表达式中有三个(捕获)组,但只有两个。因此,
$3
获得匹配的偏移量,这是您得到的意外数字。有关详细信息,请参见Mozilla JS参考中的


在正则表达式中使用类似于
“('.\”)(.*)('.\”)
(3组)的内容。

好的,看来我已经解决了这个问题

source_text_safe = source_text.replace(new RegExp("('|\").*('|\")", "gm"), function ($0) {
    return (new Array($0.length + 1).join("-"));
});
不过,感谢您提供的所有答案。

纯正则表达式的相关/重复:
source_text_safe = source_text.replace(new RegExp("('|\").*('|\")", "gm"), function ($0) {
    return (new Array($0.length + 1).join("-"));
});