Ik heb een touwtje die meerdere ruimtes bevat. Ik wil deze vervangen door een plusteken. Ik dacht dat ik
kon gebruiken
var str = 'a b c';
var replaced = str.replace(' ', '+');
Maar het vervangt alleen de eerste gebeurtenis. Hoe kan ik het alle gebeurtenissen vervangen?
Antwoord 1, Autoriteit 100%
Hier is een alternatief dat Regex niet vereist:
var str = 'a b c';
var replaced = str.split(' ').join('+');
Antwoord 2, Autoriteit 96%
U hebt de optie /g
(GLOBAL) nodig, zoals deze:
var replaced = str.replace(/ /g, '+');
U kunt het hier eens proberen . In tegenstelling tot de meeste andere talen, vervangt JavaScript, standaard de eerste voorval.
Antwoord 3, Autoriteit 19%
var str = 'a b c';
var replaced = str.replace(/\s/g, '+');
Antwoord 4, Autoriteit 15%
U kunt het ook doen zoals:
str = str.replace(/\s/g, "+");
Bekijk dit fiddle .
Antwoord 5, Autoriteit 5%
Gebruik wereldwijde zoekopdracht in de string. g vlag
str.replace(/\s+/g, '+');
bron: replaceAll functie
Antwoord 6, autoriteit 5%
Gebruik een reguliere expressie met de g
modifier:
var replaced = str.replace(/ /g, '+');
Van Reguliere expressies gebruiken met JavaScript en ActionScript:
/g maakt ‘algemeen’ zoeken mogelijk. Wanneer u de methode Replace() gebruikt, geeft u deze modifier op om alle overeenkomsten te vervangen, in plaats van alleen de eerste.
Antwoord 7, autoriteit 2%
Je moet op zoek naar een of andere optie ReplaceAll
str = str.replace(/ /g, "+");
dit is een reguliere expressiemanier om een ReplaceAll uit te voeren.
function ReplaceAll(Source, stringToFind, stringToReplace) {
var temp = Source;
var index = temp.indexOf(stringToFind);
while (index != -1) {
temp = temp.replace(stringToFind, stringToReplace);
index = temp.indexOf(stringToFind);
}
return temp;
}
String.prototype.ReplaceAll = function (stringToFind, stringToReplace) {
var temp = this;
var index = temp.indexOf(stringToFind);
while (index != -1) {
temp = temp.replace(stringToFind, stringToReplace);
index = temp.indexOf(stringToFind);
}
return temp;
};
Antwoord 8
GEMEEN RUIMTEPROBLEEM
In sommige browsers
(MSIE “zoals gewoonlijk” ;-))
het vervangen van spatie in string negeert de vaste spatie (de 160 char code).
Men moet altijd als volgt vervangen:
myString.replace(/[ \u00A0]/, myReplaceString)
Zeer mooie gedetailleerde uitleg:
http://www.adamkoch.com /2009/07/25/white-space-and-character-160/
Antwoord 9
Doe dit recursief:
public String replaceSpace(String s){
if (s.length() < 2) {
if(s.equals(" "))
return "+";
else
return s;
}
if (s.charAt(0) == ' ')
return "+" + replaceSpace(s.substring(1));
else
return s.substring(0, 1) + replaceSpace(s.substring(1));
}