JavaScript RegExp替换

1 javascript regex replace

不确定我在哪里做错了.我有一个字符串,如测试(123x),我试图找到(123x)并替换它什么都没有:

这是我的代码

<script type="text/javascript">
    var original = "Test (1x)";
    var newString = original.replace(new RegExp("\(\d{1,6}[x]{1}\)",original),"");
    console.log(newString);
</script>
Run Code Online (Sandbox Code Playgroud)

我已经测试了正则表达式模式并且它正确匹配,但是,当我登录到控制台时,它不是用""替换(1x)

Gum*_*mbo 9

您应尽可能使用RegExp文字:

var original = "Test (1x)";
var newString = original.replace(/\(\d{1,6}[x]{1}\)/,"");
Run Code Online (Sandbox Code Playgroud)

您的尝试失败,因为"\(\d{1,6}[x]{1}\)"解释为"(d{1,6}[x]{1})"(\?简单地剥离未知的转义序列).你也需要逃脱\:

new RegExp("\\(\\d{1,6}[x]{1}\\)",original)
Run Code Online (Sandbox Code Playgroud)

除此之外,RegExp构造函数的第二个参数用于标志(g= global replace,i=不区分大小写等).