How can I split a string in JavaScript using an array-keyword list?
var keywords = [ 'An Example', 'Test'];
var str = "Lorem ipsum dolor sit amet, consetetur sadipscing elitr\n"+
"Test: Lorem ipsum dolor sit amet, consetetur sadipscing elitr\n"+
"This is An Example Lorem ipsum dolor sit amet, consetetur sadipscing elitr\n"+
"An Example Lorem ipsum dolor sit amet, consetetur sadipscing elitr";
In my example I want to get:
<p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr</p>
<p>Test</p>
<p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr</p>
<p>This is An Example Lorem ipsum dolor sit amet, consetetur sadipscing elitr</p>
<p>An Example</p>
<p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr</p>
My poor solution right now is something like
str.trim().replace(/(.*?)(\n|:)/mgi, '<p>$1</p>');
function escapeRegExp(str){
return str.replace(/([.*+?^=!:${}()|\[\]\/\\])/g, "\\$1");
}
reg = keywords.map(function(s){ return escapeRegExp(s) + ":?";}).join("|");
var result = str.split(/\n/).map(function(x) {
var res = x.split(new RegExp("^(" + reg + ")"));
return res.length==1 ? "<p>" + res[0] + "</p>" : "<p>" + res[1].replace(/:$/,"") + "</p>\n<p>" + res[2].trim();
}).join("\n");
http://jsfiddle.net/Tg3ch/
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