nasıl böyle bir dizi olsun, böylece bujavascript: Bir dize bölme (henüz boşluk koruyarak)
"please help me "
gibi bir dize bölmek yapın: Başka bir deyişle
["please ","help ","me "]
, ben
nasıl böyle bir dizi olsun, böylece bujavascript: Bir dize bölme (henüz boşluk koruyarak)
"please help me "
gibi bir dize bölmek yapın: Başka bir deyişle
["please ","help ","me "]
, ben
şey gibi uzayı (veya boşluk)
Teşekkür koruyan bir dizi olsun:
var str = "please help me ";
var split = str.split(/(\S+\s+)/).filter(function(n) {return n});
@adaneo teşekkürler teşekkürler ... reg expr ne yaptığını açıklar .... Onu doğru cevap olarak işaretleyeceğim – Zo72
'\ S, bir boşluk olmayan herhangi bir karakterle eşleşiyor, artı ekleyerek açgözlülük yaratıyor, bir karakter kümesini eşleştiriyor ve sonra' 's tersi, matematiksel boşlukları ve artı açgözlülük yapar, bu yüzden karakterler ile başlayan ve boşluk ile biten bir grupla eşleşir ve sonraki grup, boşluktan sonra bir karakter olduğunda başlar. Filtre, eşleşmeyi sondaki ve başlangıçtan itibaren ve her grupta, Bunlar emtpy. – adeneo
bu işlevi kullanmadan karmaşıktır;
var temp = "", outputArray = [], text = "please help me ".split("");
for(i=0; i < text.length; i++) {
console.log(typeof text[i+1])
if(text[i] === " " && (text[i+1] !== " " || typeof text[i+1] === "undefined")) {
outputArray.push(temp+=text[i]);
temp="";
} else {
temp+=text[i];
}
}
console.log(outputArray);
Basit bir normal ifadenin buna yardımcı olabileceğini sanmıyorum. sen benim çözüm ile çıktı
String.prototype.splitPreserve = function(seperator) {
var temp = "",
outputArray = [],
text = this.split("");
for(i=0; i < text.length; i++) {
console.log(typeof text[i+1])
if(text[i] === seperator && (text[i+1] !== seperator || typeof text[i+1] === "undefined")) {
outputArray.push(temp+=text[i]);
temp="";
} else {
temp+=text[i];
}
}
return outputArray;
}
console.log("please help me ".splitPreserve(" "));
@PP yapmam nereye ... bir yerli kod gibi kullanmak prototip kullanabileceğiniz bir ve for çevriminin ve bir boşluk bile olsa charAt ile kontrol her öğe için. .. ve bu işe yarıyor ama eminim ki daha iyi bir yol olmalı. – Zo72
Neden normal bir ifade oluşturmuyor ve yakalama sırasında global olarak eşleşmiyor? (\\ S + \\ s +) 'gibi bir şey yeterli olur. –
@PP Eğer "lütfen bana yardım et" yaparsam cevabı düzeltebilirsin .split ('\ s + \ S +') Bir öğe [dizi kendisi] ile bir dizi olsun? – Zo72