javascript - 使用 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/
解决方案
您可以使用捕获组并替换
var obj = "this is a blabla (32332) [XAML]";
var patt1 = /\(([^)]*)\)|\[([^\]]*)\]/gi;
obj = obj.replace(patt1, "$1$2");
console.log(obj)
如果您想删除[]
并且()
无论它们在哪里,它们是否平衡,您都可以简单地使用
[\]()\[]+
使用 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)
推荐阅读
- android - 找不到用户 0 的提供者;期望为此权限找到一个有效的 ContentProvider
- angular - angular6:我希望我继承的组件具有父组件的一些属性
- javascript - How {}.hasOwnProperty() works?
- bash - Set environment variables in bash file calling a Matlab script
- php - OOP - sql commands inside PHP class
- r - 使用 MICE 进行多重插补后的个体 AUC
- java - 我想找到数组第一个和最后一个元素以及第二个和第二个最后一个元素以及第三个和第三个最后一个元素的总和等等
- python - 在 Ubuntu 18.04 上使用 Python3.6 安装底图
- java - 如何合并/更新两个列表
- sql - 使用 ORDER、LIMIT 和 IN 谓词进行查询的 Cassandra 表设计