仅当字符串后面没有左方括号或点运算符,即" ["或"。"

时间:2014-11-05 20:27:22

标签: javascript regex string

[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);

感谢您的帮助。

1 个答案:

答案 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-"