仅在未跟随左方括号的情况下替换字符串,即[

时间:2014-11-03 19:38:36

标签: javascript regex

[Javascript]我想要替换字符串,如果它没有用左手方括号,即[

例如,如果string是“ABCD [”那么它不应该替换,因为字符串后跟左方括号

例如,如果字符串是“ABC”,那么它应该替换为目标字符串,因为字符串后面没有左方括号。

e.g。 3如果string是“ABCD ABCD [”,这里它应该只替换第一个单词。

我使用过的代码:

var val = "ABC";
var find = val+"(?!\[)";
var re = new RegExp(find, 'g');
var inputstring = "ABC[";
var replacewith = "PQR";
inputstring = inputstring.replace(re,replacewith);

// Getting Error as :  Uncaught SyntaxError: Invalid regular expression: /ABC(?![)/: Unterminated character class 

感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

您可以使用负向前瞻:

/ABC(?!\[)/

OR通常匹配[未跟随的任何单词:

/\b\w+\b(?!\[)/
如果下一个字符为(?!\[),则

[为避免此匹配的否定前瞻。

答案 1 :(得分:1)

您可以使用否定前瞻:

 ABCD(?!\[)

http://regex101.com/r/eH1hR8/1

请注意,修饰符gm仅用于演示目的。您不需要它们,除非您有多行字符串并且想要替换所有出现的事件。