Myślę, że najlepszym rozwiązaniem może być użycie natywnego zastąpić metodą Javascript dla ciągów.
W3Schools ma ładne nisko na nim here. Powinien wykonać dokładnie to, co chcesz, ale może zastąpić WSZYSTKIE podane liczby, więc pamiętaj, aby powiedzieć coś takiego, jak: var replacement = str.replace("2 ", "28 ");
EDYCJA: Wskazuje na dobrą wadę. Zamiast tego możesz spróbować:
EDIT2: Opps, miał kilka błędów w oryginalnym kodzie. Testowane i działa dobrze! :)
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))
Co dotychczas próbowałeś rozwiązać problem? Czy zrobiłeś jakieś badania? Czy masz problem z bieżącym kodem? – Anonymous
Jestem nudny, co jest nie tak z nudnym! –
"ale to brzmi nudno" - możesz chcieć wyjaśnić, w jaki sposób oceniasz emocje, abyśmy wiedzieli, gdzie przesłać odpowiedzi ...Albo bardziej poważnie, że ta metoda jest tą, na którą chciałbym pójść, to zadziałałoby i na przykład, który dałeś, nawet nie ssał tak dużo. Co z tą metodą, której nie lubisz (zakładam, że "nudne" było po prostu żartobliwe). – Chris