Note that the following is not finished yet, so is just a beginning!
// PHP-JS Dependencies: str_split, trim
var PREG_SPLIT_NO_EMPTY = 1;
var PREG_SPLIT_DELIM_CAPTURE = 2;
var PREG_SPLIT_OFFSET_CAPTURE = 4;
function preg_split (pattern, subject, limit, flags) {
// Should also allow for multiple flags
pattern = trim(pattern); // Trim to make sure first item is a pattern delimiter
var lio = trim(pattern.lastIndexOf(pattern[0]));
var pflags = '';
if (lio > 1) {
pattern = pattern.substring(1, lio-1);
pflags = str_split(pattern.substring(lio));
pflags = pflags.replace(/ |\n/g, '');
for (var i=0; i < pflags.length; i++) {
pflags[i];
}
// i, m, s, x, e, a, d, s, u, x, j, u
}
var regexp_pattern = new RegExp(pattern);
if (flags & PREG_SPLIT_DELIM_CAPTURE) { // This is assumed in JavaScript "split"; may need to use exec
}
if (flags & PREG_SPLIT_OFFSET_CAPTURE) {
}
subject = subject.split(regexp_pattern, limit);
if (flags & PREG_SPLIT_NO_EMPTY) {
subject2 = [];
for (i in subject) {
if (subject[i] != '') {
subject2[subject2.length++] = subject[i];
}
}
subject = subject2;
}
return subject.split(regexp_pattern, limit);
}