Javascript-эквивалент Python rsplit - PullRequest
13 голосов
/ 05 марта 2011

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

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

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

Ответы [ 3 ]

13 голосов
/ 05 марта 2011
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

"бла, сумасшедший, бла, бип" .rsplit (",", 1) // ['бла, сумасшедший, бла', 'бип']

3 голосов
/ 09 августа 2017

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

Python:

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

Javascript:

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

2 голосов
/ 05 марта 2011

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

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