| var baseToString = require('./_baseToString'), | |
|     castSlice = require('./_castSlice'), | |
|     hasUnicode = require('./_hasUnicode'), | |
|     isIterateeCall = require('./_isIterateeCall'), | |
|     isRegExp = require('./isRegExp'), | |
|     stringToArray = require('./_stringToArray'), | |
|     toString = require('./toString'); | |
| 
 | |
| /** Used as references for the maximum length and index of an array. */ | |
| var MAX_ARRAY_LENGTH = 4294967295; | |
| 
 | |
| /** | |
|  * Splits `string` by `separator`. | |
|  * | |
|  * **Note:** This method is based on | |
|  * [`String#split`](https://mdn.io/String/split). | |
|  * | |
|  * @static | |
|  * @memberOf _ | |
|  * @since 4.0.0 | |
|  * @category String | |
|  * @param {string} [string=''] The string to split. | |
|  * @param {RegExp|string} separator The separator pattern to split by. | |
|  * @param {number} [limit] The length to truncate results to. | |
|  * @returns {Array} Returns the string segments. | |
|  * @example | |
|  * | |
|  * _.split('a-b-c', '-', 2); | |
|  * // => ['a', 'b'] | |
|  */ | |
| function split(string, separator, limit) { | |
|   if (limit && typeof limit != 'number' && isIterateeCall(string, separator, limit)) { | |
|     separator = limit = undefined; | |
|   } | |
|   limit = limit === undefined ? MAX_ARRAY_LENGTH : limit >>> 0; | |
|   if (!limit) { | |
|     return []; | |
|   } | |
|   string = toString(string); | |
|   if (string && ( | |
|         typeof separator == 'string' || | |
|         (separator != null && !isRegExp(separator)) | |
|       )) { | |
|     separator = baseToString(separator); | |
|     if (!separator && hasUnicode(string)) { | |
|       return castSlice(stringToArray(string), 0, limit); | |
|     } | |
|   } | |
|   return string.split(separator, limit); | |
| } | |
| 
 | |
| module.exports = split;
 |