below is something I am trying to do with JavaScript.
If I have string like
str = "how are you? hope you are doing good" ;
now I want to split it with ? (or . or !) but I dont want to lose the "?". Instead I want to break the string just after the question mark such a way that question mark is with the first segment that we have. also after the ? or / or ! there needs to be a \s (space) in order to break it into segments
after splitting str what should I get is
["how are you?","hope you are doing good"]
I am not sure if it can be done with Javascript split() function ,please help.
str.match(/\S[^?]*(?:\?+|$)/g)
["how are you?", "hope you are doing good"]
The easiest, most straight-forward way I can see is to just lose the "?" and add it back:
var parts, n;
parts = str.split("?");
for (n = parts.length - 2; n >= 0; --n) { // Skip the last one
parts[n] += "?";
}
if (str.charAt(str.length-1) == "?") { // If it ended with "?", add it back
parts[parts.length-1] += "?";
}
Alternately, though, there's a way via RegExp. Edit Removed mine, S.Mark's regex is so much better.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With