JavaScript RegExp Replace

JavaScript RegExp Replace

本文关键字:Replace RegExp JavaScript      更新时间:2023-09-26

不确定我做错了什么。我有一个字符串,比如Test(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>

我已经测试了regex模式,它匹配正确,但是,当我登录到控制台时,它并没有用"

替换(1x)

您应该尽可能使用RegExp文字:

var original = "Test (1x)";
var newString = original.replace(/'('d{1,6}[x]{1}')/,"");

您的尝试失败,因为"'('d{1,6}[x]{1}')"被解释为"(d{1,6}[x]{1})"(对于未知的转义序列,'‍被简单地剥离)。您还需要逃离'

new RegExp("''(''d{1,6}[x]{1}'')",original)

除此之外,RegExp构造函数的第二个参数用于标志(g=全局替换,i=不区分大小写等)。

original传递给RegExp是错误的。您还必须对字符串中的每个斜杠进行转义(以便为正则表达式生成一个斜杠),因为'是JS字符串中的转义符:

original.replace(new RegExp("''(''d{1,6}[x]{1}'')"),"");

注意,[x]{1}与直接写入x相同。

您也可以使用regex literal:

/'('d{1,6}x')/