[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
感谢您的帮助。
答案 0 :(得分:1)
您可以使用负向前瞻:
/ABC(?!\[)/
OR通常匹配[
未跟随的任何单词:
/\b\w+\b(?!\[)/
如果下一个字符为(?!\[)
,则 [
为避免此匹配的否定前瞻。
答案 1 :(得分:1)
您可以使用否定前瞻:
ABCD(?!\[)
http://regex101.com/r/eH1hR8/1
请注意,修饰符gm
仅用于演示目的。您不需要它们,除非您有多行字符串并且想要替换所有出现的事件。