это сложно без использования функции;
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);
Я не думаю, что это может помочь простому регулярному выражению. вы можете использовать прототип, чтобы использовать его как машинный код ...
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 Я вышел с моим решением, где я делаю для цикла и и для каждого элемента я проверяю с Шаром, если это пространство. .. и это работает, но я уверен, что должен быть лучший способ. – Zo72
Почему бы не создать регулярное выражение и глобально соответствовать ему во время захвата? Кое-что вроде '(\\ S + \\ s +)' было бы достаточно. –
@PP Можете ли вы уточнить ответ, если я сделаю «пожалуйста, помогите мне» .split ('\ s + \ S +') Я получаю массив с одним элементом [самой строкой]? – Zo72