Provides utility methods for splitting strings on word breaks and determining whether a character index represents a word boundary, using the generic word breaking algorithm defined in the Unicode Text Segmentation guidelines (Unicode Standard Annex #29).
This algorithm provides a reasonable default for many languages. However, it does not cover language or context specific requirements, and it does not provide meaningful results at all for languages that don't use spaces between words, such as Chinese, Japanese, Thai, Lao, Khmer, and others. Server-based word breaking services usually provide significantly better results with better performance.
_classify
string
Returns a character classification map for the specified string.
string
String
String to classify.
Classification map.
_isWordBoundary
map
index
Returns true
if there is a word boundary between the
specified character index and the next character index (or the end of the
string).
Note that there are always word breaks at the beginning and end of a
string, so _isWordBoundary('', 0)
and
_isWordBoundary('a', 0)
will both return true
.
getUniqueWords
string
options
Returns an array containing only unique words from the specified string.
For example, the string 'foo bar baz foo'
would result in
the array ['foo', 'bar', 'baz']
.
Array of unique words.
getWords
string
options
Splits the specified string into an array of individual words.
string
String
String to split.
options
Object
(optional) Options object containing zero or more of the following properties:
true
, the string will be converted to lowercase
before being split. Default is false
.
true
, the returned array will include punctuation
characters. Default is false
.
true
, the returned array will include whitespace
characters. Default is false
.
Array of words.
isWordBoundary
string
index
Returns true
if there is a word boundary between the
specified character index and the next character index (or the end of the
string).
Note that there are always word breaks at the beginning and end of a
string, so isWordBoundary('', 0)
and
isWordBoundary('a', 0)
will both return true
.
true
for a word boundary,
false
otherwise.