Javascript 替换为 RegExp 重复本身?

标签 javascript regex replace repeat

我正在尝试替换用户输入定义的字符串中出现的任何 [start] 或 [end]。我希望它不区分大小写,因此它也将替换 [Start]、[STARt] 等。

示例输入字符串是

var eventLabel = "BPY [start]";

这是我正在尝试的

var result = eventLabel.replace(new RegExp("[start]", "gi"), "replaced");

这是替换后的结果内容

BPY [replacedreplacedreplacedreplacedreplaced]

但是,它在循环内部,当我在第一次替换后直接警告结果时,它就是这样的。它还将括号留在那里,但只替换了奇怪的内容。

有人知道这是怎么回事吗?

最佳答案

您需要转义 [ 符号,因为 [ 是正则表达式中的特殊元字符,表示字符类的开始。要匹配 [start][end] 字符串,请不要忘记将它们放入如下所示的组中。

var result = eventLabel.replace(new RegExp("\\[(?:start|end)\\]", "gi"), row['startTime']);

或者

var result = eventLabel.replace(/\[(?:start|end)\]/gi, row['startTime']);

关于Javascript 替换为 RegExp 重复本身?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27450572/

相关文章:

javascript - 比较两个相等的字符串返回 false

C# 正则表达式从字符串中去除除字母和数字字符之外的所有字符?

javascript - 同时替换字符串的多个部分

php - 用 0 替换平面数组中的所有值

javascript - 平滑刷新显示来自不断更新的 MySQL 列的数据的 html 页面

javascript从数组中随机数返回单个字母/符号

javascript - 替换 Javascript 中的动态字符串值

Python 正则表达式 : How to extract string between parentheses and quotes if they exist

python - 直接以 NLTK 模式应用字符串

Java String.replace/replaceAll 不工作