我将以下测试用例作为输入:
> [这是我的测试] [这是我的测试]我的名字是xyz.
希望预期输出为:
[这是我的测试]我的名字是xyz.
.
> [这是我的测试]我的名字是xyz.
希望预期输出为:
我的名字是xyz.
对于上面的测试用例,我想用空白替换第一次出现的'[This is my test]’.我不想替换第二次匹配.
如何在JavaScript中使用正则表达式解决此问题?
提前致谢.
ETA:
我只想更清楚地说明,我不想在正则表达式中使用硬编码值,我想在正则表达式中使用变量.
假设[这是我的测试]存储在一个变量中,即var defaultMsg =“[这是我的测试]”;
解决方法
如果搜索模式位于字符串变量中并且可以包含特殊字符,则必须对其进行转义.像这样:
var defaultMsg = "[This is my test] "; //-- Must escape special characters to use in a RegEx. defaultMsg = defaultMsg.replace (/([\!\$\(\)\*\+\.\/\:\=\?\[\\\]\^\{\|\}])/g,"\\$1") var zRegEx = new RegExp (defaultMsg,''); var Str = '[This is my test] [This is my test] My name is xyz.'; Str = Str.replace(zRegEx,""); console.log (Str); //-- Or use alert()