繁体   English   中英

仅当字符串后没有左方括号或点运算符(即“ [”或“。”)时才替换字符串

[英]Replace string only if its not followed with left square brackets OR dot operator i.e. “[” or “.”

[Javascript]仅在字符串不带左方括号或点运算符(即“ [”和“”)时才要替换。

eg1如果字符串是“ ABCD [”,则不应替换,因为字符串后跟左方括号

eg2,如果字符串是“ ABCD”。 那么它不应该替换,因为字符串后跟点运算符

eg3如果字符串为“ ABC”,则应将其替换为目标字符串,因为不带左方括号的字符串也不是点运算符。

eg4如果字符串为“ 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);

谢谢你的帮助。

您的正则表达式缺少负前瞻点。 像这样使用它:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM