time-to-botec

Benchmark sampling in different programming languages
Log | Files | Refs | README

words.js (1031B)


      1 var asciiWords = require('./_asciiWords'),
      2     hasUnicodeWord = require('./_hasUnicodeWord'),
      3     toString = require('./toString'),
      4     unicodeWords = require('./_unicodeWords');
      5 
      6 /**
      7  * Splits `string` into an array of its words.
      8  *
      9  * @static
     10  * @memberOf _
     11  * @since 3.0.0
     12  * @category String
     13  * @param {string} [string=''] The string to inspect.
     14  * @param {RegExp|string} [pattern] The pattern to match words.
     15  * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.
     16  * @returns {Array} Returns the words of `string`.
     17  * @example
     18  *
     19  * _.words('fred, barney, & pebbles');
     20  * // => ['fred', 'barney', 'pebbles']
     21  *
     22  * _.words('fred, barney, & pebbles', /[^, ]+/g);
     23  * // => ['fred', 'barney', '&', 'pebbles']
     24  */
     25 function words(string, pattern, guard) {
     26   string = toString(string);
     27   pattern = guard ? undefined : pattern;
     28 
     29   if (pattern === undefined) {
     30     return hasUnicodeWord(string) ? unicodeWords(string) : asciiWords(string);
     31   }
     32   return string.match(pattern) || [];
     33 }
     34 
     35 module.exports = words;