[Javascript]我想替换字符串只有在它后面没有左方括号OR点运算符,即" ["和"。"
例如,如果字符串是" ABCD ["然后它不应该替换,因为字符串后跟左方括号
例如,如果字符串是" ABCD。"然后它不应该替换,因为字符串后跟点运算符
例如,如果字符串是" ABC"那么它应该替换为目标字符串,因为字符串后面没有左方括号也不是点运算符。
例如,如果字符串是" 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);
感谢您的帮助。
答案 0 :(得分:1)
你的正则表达式从负向前瞻中丢失了一点。像这样使用它:
var val = "ABC";
var find = val+"(?![\\[.])";
var re = new RegExp(find, 'g');
<强>测试强>
'ABC['.replace(re, 'PQR');
"ABC["
'ABC.'.replace(re, 'PQR');
"ABC."
'ABC-'.replace(re, 'PQR');
"PQR-"