0

我在 javascript 中有以下字符串:
“你好 OR,我是 OR )”
注意括号前的空格。我想要这个
“你好 OR,我是)”
所以基本上只需删除最后一个 OR。我尝试了每个 RegEx 组合都没有成功,即:

string = string .replace(/OR\s\)/, " )"); //NO
string = string .replace(/OR \)/, " )");  //NO

删除圆括号只能工作,但只要我添加 OR,就没有运气

string = string .replace(/\)/, " )"); //Removes the bracket
string = string .replace(/\s\)/, " )"); //Removes the bracket and the space

我在http://regexpal.com/尝试了 RegEx /OR\s)/,它运行良好,那么为什么不在 javascript 中呢?
这感觉像是一个非常简单的问题,但 2 小时后我仍然迷路了。
谢谢你的帮助。

4

2 回答 2

1
string = string.replace(/(\s*OR)(?![\s\S]*OR)/,"");

请参阅使用正则表达式替换模式的最后一次出现

于 2013-01-25T17:55:14.260 回答
0

这应该工作:

> s = "Hallo OR, I am OR )"
'Hallo OR, I am OR )'
> s.replace(/\bOR[\s)]+/g, ')')
'Hallo OR, I am )'
于 2013-01-25T16:51:53.777 回答