我有以下测试用例作为输入:
[这是我的测试] [这是我的测试] 我叫 xyz。
希望预期输出为:
[这是我的测试]我的名字是 xyz。
.[这是我的测试]我的名字是xyz。
希望预期输出为:
我叫 xyz。
对于上述测试用例,我只想将第一次出现的 '[This is my test] ' 替换为空白。我不想替换第二次出现的匹配项。
如何在 JavaScript 中使用正则表达式解决此问题?
提前致谢。
预计到达时间:
我只是想给出更多的说明,我不想在正则表达式中使用硬编码值,我想在正则表达式中使用变量。
假设 [This is my test]
存储在一个变量中,即 var defaultMsg = "[This is my test] ";
最佳答案
有人试过吗?
<script>
var defaultMsg ="[This is my test]"
var str = "[This is my test] [This is my test] My name is xyz.";
str=str.replace(defaultMsg,"");
alert(str);
</script>
如果源字符串不是正则表达式对象而只是一个字符串,则不需要正则表达式和替换不关心特殊字符。 测试了 Mozilla 1.7、FF3.6.6、Safari 5、Opera 10 和 IE8 windows XP sp3。不确定我是否理解如果它以最少的麻烦完成工作为什么会被否决。
要替换所有出现的地方,请添加一个 g(注意:这不是标准的):
str=str.replace(defaultMsg,"","g"); // "gi" for case insensitivity
关于javascript - 正则表达式替换 javascript 中第一次出现的匹配项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3244817/