I have this string:
var text = 'Hello. World... Lorem? Ipsum 123';
Using javascript regex, how can I strip everything that is after the last ., ?, ! (the end of the last sentence).
With the above example, it should result to:
text = 'Hello. World... Lorem?';
Advertisement
Answer
You could try a regex replacement:
var text = 'Hello. World... Lorem? Ipsum 123'; var output = text.replace(/([.?!])(?!.*[.?!]).*$/, "$1"); console.log(output);
The replacement logic here says to:
([.?!]) match and capture a closing punctuation
(?!.*[.?!]) then assert that this punctuation in fact
be the final one
.* match and consume all remaining text
$ until the end of the input
Then we replace that final punctuation mark. We could, in theory, have used a lookbehind, but this isn’t supported on all versions of JavaScript (not at least on SO’s demo tool).