javascript - 正则表达式替换 javascript 中第一次出现的匹配项

标签 javascript regex

我有以下测试用例作为输入:

  1. [这是我的测试] [这是我的测试] 我叫 xyz。

    希望预期输出为:
    [这是我的测试]我的名字是 xyz。
    .

  2. [这是我的测试]我的名字是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 

replace MDN

关于javascript - 正则表达式替换 javascript 中第一次出现的匹配项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3244817/

相关文章:

Javascript getElementsByTagName 破坏了 firefox?

javascript - 有没有办法确定 blob URL 是否指向某些内容?

javascript - 使用 jquery 或 javascript 通过 AJAX 读取嵌套的 JSON 并输出到表

Java正则表达式替换大字符串中的多个文件路径

java - 正则表达式模式匹配不适用于 java 中的特定字符串

javascript - 在 Javascript 中使用一次(而不是两次)分隔符拆分字符串

javascript - 带点的正则表达式 Javascript 字母,不在开头或结尾

javascript - 在我的代码中哪里引入延迟函数

javascript - 无法使用自定义 jQuery 表单下拉验证选择 GetElementByName 的值

javascript - 包括特殊字符 (!,@,#,&) 不包括其他特殊字符