Aku punya string yang berisi beberapa ruang. Aku ingin menggantinya dengan simbol plus. Saya pikir saya bisa menggunakan
var str = 'a b c';
var replaced = str.replace(' ', '+');
tapi itu hanya menggantikan kejadian pertama. Bagaimana saya bisa mendapatkan itu mengganti semua kejadian?
Berikut ini's alternatif yang doesn't membutuhkan regex:
var str = 'a b c';
var replaced = str.split(' ').join('+');
Menggunakan ekspresi reguler dengan g
modifier:
var replaced = str.replace(/ /g, '+');
Dari Menggunakan Ekspresi Reguler dengan JavaScript dan ActionScript:
/g memungkinkan "global" pencocokan. Ketika menggunakan replace() metode, menentukan pengubah ini untuk mengganti semua pertandingan, bukan hanya yang pertama.
Anda perlu mencari beberapa replaceAll pilihan
str = str.replace(/ /g, "+");
ini adalah ekspresi reguler cara melakukan replaceAll.
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;
};
Di beberapa browser
(MSIE "seperti" ;-))
mengganti spasi dalam string mengabaikan non-breaking space (160 char kode).
Salah satu harus selalu ganti seperti ini:
myString.replace(/[ \u00A0]/, myReplaceString)
Sangat bagus untuk penjelasan detail:
http://www.adamkoch.com/2009/07/25/white-space-and-character-160/
Lakukan hal ini secara rekursif:
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));
}