Я думаю, лучшим решением было бы использовать нативный метод замены в JavaScript для строк.
W3Schools имеет приятное понижение на нем here. Он должен делать именно то, что вы хотите, но может заменить ВСЕ числа, которые вы указали, поэтому обязательно скажите что-то вроде var replacement = str.replace("2 ", "28 ");
EDIT: Указанный хороший недостаток с этим. Вместо этого вы могли бы попробовать:
EDIT2: Opps, имел некоторые недостатки в исходном коде. Протестировано и отлично работает! :)
function replaceNumbers(x1, x2, str) {
var strMod = " " + str + " "
var x1Mod = " " + x1 + " "
var x2Mod = " " + x2 + " "
// Want to replace "farthest" first to ensure correct replacement.
if (str.indexOf(x1Mod) > str.indexOf(x2Mod)) {
strMod = strMod.replace(x1Mod, x2Mod)
strMod = strMod.replace(x2Mod, x1Mod)
} else {
strMod = strMod.replace(x2Mod, x1Mod)
strMod = strMod.replace(x1Mod, x2Mod)
}
return strMod.slice(1, strMod.length - 1)
}
var numbers = "2 4 13 14 28 33";
alert(replaceNumbers(2, 33, numbers))
Что вы пробовали сделать до сих пор, чтобы решить эту проблему? Проводили ли вы какие-либо исследования? У вас есть проблема в вашем текущем коде? – Anonymous
Мне скучно, что случилось с скукой! –
«но это звучит скучно» - вы можете уточнить, как вы оцениваете волнение, чтобы мы знали, где передать ответы ...Или, что более серьезно, этот метод - тот, на который я бы пошел, это сработало бы, и для примера, который вы дали, даже не сосать. Как насчет этого метода вам не нравится (я предполагаю, что «скучно» было просто грандиозным). – Chris