Javascript 仅当字符串后面没有左方括号或点运算符时才替换字符串,即;[“或”或“或”;
[Javascript]我只想在字符串后面没有左方括号或点运算符,即“[”和“.”时替换字符串 e、 g.1如果字符串为“ABCD[”,则不应替换该字符串,因为该字符串后跟左方括号 e、 g.2如果字符串为“ABCD”,则不应替换,因为该字符串后跟点运算符 e、 g.3如果字符串为“ABC”,则应将其替换为目标字符串,因为字符串后面没有左方括号,也没有点运算符 e、 g.4如果字符串为“ABCD ABCD[”,则此处应仅替换第一个单词 下面是我使用过的代码:Javascript 仅当字符串后面没有左方括号或点运算符时才替换字符串,即;[“或”或“或”;,javascript,regex,string,Javascript,Regex,String,[Javascript]我只想在字符串后面没有左方括号或点运算符,即“[”和“.”时替换字符串 e、 g.1如果字符串为“ABCD[”,则不应替换该字符串,因为该字符串后跟左方括号 e、 g.2如果字符串为“ABCD”,则不应替换,因为该字符串后跟点运算符 e、 g.3如果字符串为“ABC”,则应将其替换为目标字符串,因为字符串后面没有左方括号,也没有点运算符 e、 g.4如果字符串为“ABCD ABCD[”,则此处应仅替换第一个单词 下面是我使用过的代码: var val = "ABC"; v
var val = "ABC";
var find = val+"(?!\\[)";
var re = new RegExp(find, 'g');
var inputstring = "ABC[";
var replacewith = "PQR";
inputstring = inputstring.replace(re,replacewith);
'ABC['.replace(re, 'PQR');
"ABC["
'ABC.'.replace(re, 'PQR');
"ABC."
'ABC-'.replace(re, 'PQR');
"PQR-"
谢谢您的帮助。您的正则表达式在负前瞻中缺少点。请这样使用:
var val = "ABC";
var find = val+"(?![\\[.])";
var re = new RegExp(find, 'g');
测试:
var val = "ABC";
var find = val+"(?!\\[)";
var re = new RegExp(find, 'g');
var inputstring = "ABC[";
var replacewith = "PQR";
inputstring = inputstring.replace(re,replacewith);
'ABC['.replace(re, 'PQR');
"ABC["
'ABC.'.replace(re, 'PQR');
"ABC."
'ABC-'.replace(re, 'PQR');
"PQR-"
再次感谢阿努巴瓦:)