JavaScript中Python的rsplit等价方法

26 投票
4 回答
17682 浏览
提问于 2025-04-16 13:02

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

这个方法会把字符串中的单词分开,使用sep作为分隔符。如果你给了maxsplit参数,那么最多只会进行maxsplit次分割,而且是从右边开始分割。如果没有指定sep或者sep是None,那么任何空白字符(比如空格、制表符等)都会被当作分隔符。除了从右边分割,rsplit()的功能和split()是一样的,后者的详细说明在下面。

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

4 个回答

2

假设你能理解JavaScript中split的用法,可以使用下面的代码

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

你还可以使用JavaScript的字符串函数splitslice来处理字符串。

在Python中:

'a,b,c'.rsplit(',' -1)[0] 这个代码会返回 'a,b'

在JavaScript中:

'a,b,c'.split(',').slice(0, -1).join(',') 这个代码同样会返回 'a,b'

19
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' ]

撰写回答