也许我忘记了 RegExp 是如何工作的,但我尝试用空值替换文本。我有这样的文字:this is a blabla (32332) [XAML]我想删除[]和()。我想使用 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/
1 回答
慕莱坞森
TA贡献1810条经验 获得超4个赞
您可以使用捕获组并替换
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)
添加回答
举报
0/150
提交
取消