首页 > 解决方案 > 使用 javascript 中的 RegExp 对象将字符串替换为值

问题描述

也许我忘记了 RegExp 的工作原理,但我试图用空值替换文本。

我有这样的文字:this is a blabla (32332) [XAML]我想删除[]and ()

我想使用 RegExp 对象。在javascript中,我这样做:

var obj = "this is a blabla (32332) [XAML]";
var patt1 = "[\(\)\]\[]";

var regObj = new RegExp(patt1, "gi");

obj = obj.replace(regObj, "");
console.log(obj);

结果仍然相同,this is a blabla (32332) [XAML]意味着没有任何内容被替换。

我的错误在哪里?这是小提琴:https ://jsfiddle.net/weak5ub3/

标签: javascript

解决方案


您可以使用捕获组并替换

在此处输入图像描述

var obj = "this is a blabla (32332) [XAML]";
var patt1 = /\(([^)]*)\)|\[([^\]]*)\]/gi;

obj = obj.replace(patt1, "$1$2");

console.log(obj)

如果您想删除[]并且()无论它们在哪里,它们是否平衡,您都可以简单地使用

  [\]()\[]+

Regex Demo


使用 RegExp 对象,您需要\\在要使用 regexp 对象时转义特殊字符

var obj = "this is a blabla (32332) [XAML]";
var patt1 = new RegExp("\\(([^)]*)\\)|\\[([^\\]]*)\\]", "gi");

obj = obj.replace(patt1, "$1$2");
console.log(obj)

var pat2 = new RegExp("[\\]()\\[]+", "gi")
var secondObj = obj.replace(pat2, "$1$2")
console.log(secondObj)


推荐阅读