var newInput = '{"id":"1","value":"Admin","prefix":"@"} asdas {"id":"24","value":"Ibiere Banigo","prefix":"@"}';
var gettingJson = newInput.match(/\{\"(.*?)\"\}/g);
var finalString = '';
$.each(gettingJson, function (index, value) {
var data = JSON.parse(value);
finalString = newInput.replace(/\{\"(.*?)\"\}/g, '@[' data.id ']');
});
console.log(finalString);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
這是我的代碼,我試圖用@[id] 替換這個括號,它正在替換它,但對于所有喜歡我的輸出
@[1] someone new @[2]
但相反我得到
@[2] someone new @[2]
uj5u.com熱心網友回復:
問題
您的方法的問題在于該replace方法會替換所有匹配的事件。
解決方案
使用replace方法回呼
replace(regexp, replacerFunction)
var newInput = '{"id":"1","value":"Admin","prefix":"@"} asdas {"id":"24","value":"Ibiere Banigo","prefix":"@"}';
var finalString = newInput.replace(/\{\"(.*?)\"\}/g, match => {
var data = JSON.parse(match);
return '@[' data.id ']'
})
console.log(finalString);
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/400029.html
標籤:javascript 正则表达式
上一篇:如何連續選擇復選框選擇。JQuery或JavaScript
下一篇:如何更改jsx檔案的背景影像
