questo è difficile senza usare una funzione;
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);
Non credo che una semplice regex possa essere d'aiuto. è possibile utilizzare prototipo di usarlo come un codice nativo ...
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 sono uscito con la mia soluzione in cui faccio un ciclo for e e per ciascuna voce verifico con charAt se si tratta di uno spazio. .. e funziona ma sono abbastanza sicuro che ci deve essere un modo migliore – Zo72
Perché non creare un'espressione regolare e associarlo globalmente durante l'acquisizione? Qualcosa come '(\\ S + \\ s +)' sarebbe sufficiente. –
@PP Puoi elaborare la risposta se faccio "per favore aiutami" .split ('\ s + \ S +') Ricevo un array con un elemento [la stringa stessa]? – Zo72