| var asciiWords = require('./_asciiWords'), |
| hasUnicodeWord = require('./_hasUnicodeWord'), |
| toString = require('./toString'), |
| unicodeWords = require('./_unicodeWords'); |
| |
| /** |
| * Splits `string` into an array of its words. |
| * |
| * @static |
| * @memberOf _ |
| * @since 3.0.0 |
| * @category String |
| * @param {string} [string=''] The string to inspect. |
| * @param {RegExp|string} [pattern] The pattern to match words. |
| * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. |
| * @returns {Array} Returns the words of `string`. |
| * @example |
| * |
| * _.words('fred, barney, & pebbles'); |
| * // => ['fred', 'barney', 'pebbles'] |
| * |
| * _.words('fred, barney, & pebbles', /[^, ]+/g); |
| * // => ['fred', 'barney', '&', 'pebbles'] |
| */ |
| function words(string, pattern, guard) { |
| string = toString(string); |
| pattern = guard ? undefined : pattern; |
| |
| if (pattern === undefined) { |
| return hasUnicodeWord(string) ? unicodeWords(string) : asciiWords(string); |
| } |
| return string.match(pattern) || []; |
| } |
| |
| module.exports = words; |