JavaScript-эквивалент Python rsplit

str.rsplit([sep [, maxsplit]])

Вернуть a список слов в строке, используя sep в качестве разделительной строки. Если maxsplit дается, максимум maxsplit разбиты, самые правые. Если sep не указан или None, любой Пробельная строка - это разделитель. За исключением расщепления справа, rsplit() ведет себя как split(), который подробно описан ниже.

http://docs.python.org/library/stdtypes.html#str.rsplit

Ответ 1

String.prototype.rsplit = function(sep, maxsplit) {
    var split = this.split(sep);
    return maxsplit ? [ split.slice(0, -maxsplit).join(sep) ].concat(split.slice(-maxsplit)) : split;
}

Эта функция более тесно связана с версией Python

"blah, derp, blah, beep".rsplit( ",", 1)//['blah, derp, blah', 'beep']

Ответ 2

Вы также можете использовать функции JS String split + slice

Python:

'a,b,c'.rsplit(',' -1)[0] даст вам 'a,b'

JavaScript:

'a,b,c'.split(',').slice(0, -1).join(',') также даст вам 'a,b'

Ответ 3

Предполагая, что семантика разделения JavaScript приемлема, используйте следующее

String.prototype.rsplit = function (delimiter, limit) {
  delimiter = this.split (delimiter || /s+/);
  return limit ? delimiter.splice (-limit) : delimiter;
}