Нужно динамически с помощью переменных и регулярного выражения поменять последнее значение в строке.
В первом случае работает во втором нет.
За ответ спасибо заранее.
var str01 = "200_String_200_String";
var str02 = "200_String_200_String_20_String";
var mx = '200';
var dx = '400';
var str1 = str01.replace(new RegExp('200([^200]*)$', ''), dx + '$1');
var str2 = str02.replace(new RegExp('' + mx + '([^' + mx + ']*)$', ''), dx + '$1');
document.getElementById('ok1').innerHTML = str1;
document.getElementById('ok2').innerHTML = str2;
<div id="ok1"></div>
<div id="ok2"></div>
Одним из возможных решений является "жадный" "умеренный" квантификатор (англ. "tempered greedy token") (?:(?!<переменная>).)*
:
var str01 = "200_String_200_String";
var str02 = "200_String_200_String_20_String";
var mx = '200';
var dx = '400';
var str1 = str01.replace(new RegExp('200((?:(?!200).)*)$', ''), dx + '$1');
var str2 = str02.replace(new RegExp('' + mx + '((?:(?!' + mx.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&') + ').)*)$', ''), dx + '$1');
document.getElementById('ok1').innerHTML = str1;
document.getElementById('ok2').innerHTML = str2;
<div id="ok1"></div>
<div id="ok2"></div>
На всякий случай, я добавил .replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&')
, если в переменной mx
окажутся символы, являющиеся специальными метасимволами регулярных выражений, которые находят сами себя только если они экранированы.
См. демо регулярного выражения.
Если в строке могут быть знаки перевода на новую строку, замените (?:(?!<переменная>).)*
на (?:(?!<переменная>)[^])*
.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Нужно чтобы в saidbar'е отображать файлы HTML,CSS,JS,PHP, а в контенте содержимое этого файлаКак это сделать?