簡體   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