lasso.between('(', ')', 'This) is (between)');
// -> {
start : 9,
end : 17,
length : 7,
value : 'between'
}
lasso.between(/[a-z]+\(/, ')', 'This) is function(between)');
// -> {
start : 18,
end : 25,
length : 16,
value : 'between'
}
lasso.camelCase('Let\'s JavaScript case this thing');
// -> letsJavascriptCaseThisThing
lasso.capitalCase('let\'s CapitalCase this thing');
// -> Let's CapitalCase This Thing
lasso.differentWords('a b c d', 'a d f b');
// -> ['c', 'f']
Calculates the Levenshtein distance between two words.
Based on this implementation by Andrei Mackenzie
lasso.distance('This distance', 'That distant');
// -> 4
Adds '...' at the end of a string if it exceeds the length of the second argument
lasso.ellipsis('This distance', 5);
// -> This...
Returns an object of character positions in a fuzzy search.
var match = lasso.fuzzy('this is being searched', 'tbs');
// -> [{"index":0,"length":1,"match":"t"},{"index":8,"length":1,"match":"b"},{"index":14,"length":1,"match":"s"}]
.distance
is the distance between the first and last match.closest
is theindex
of the closest match.farthest
is theindex
of the farthest match.difference
is the difference between theclosest
andfarthest
match
var match = lasso.fuzzy('this is being searched', 'tbs');
// match.distance -> 14
// match.closest -> 6
// match.farthest -> 7
// match.difference -> 1
Groups numbers together using a comma
lasso.group(1000.49);
// -> 1,000.49
lasso.indexesOf('Check out where the indexes of \'e\' are', 'e');
// -> [{ index : 3, length : 1, match : 'e'}, { index : 5, length : 1, match : 'e'}, { ... }]
Also works with a regular expression
lasso.indexesOf('Check out where the indexes of \'e\' are', /e/);
Works a bit like a regular expression match in that in returns the string split up by character group types, alpha with alpha, numbers with numbers, punctuation with punctuation, etc.
var match = lasso.matchType('test10.scss');
// -> ['test', '10', '.', 'scss'];
lasso.sameWords('a b c', 'a');
// -> ['a']
lasso.splice('string', 1, 0, 'INSERT');
// -> sINSERTtring
lasso.template('Use %s to template a string', 'Rope');
// -> Use Rope to template a string
You can also reference indexes:
lasso.template('indexed %0', 'values');
// -> indexed values
lasso.toCharCode(82);
// -> R
lasso.toCharCode([82, 111, 112, 101]);
// -> Rope
lasso.toCharCode('s');
// -> [115]
lasso.toCharCode('Rope');
// -> [82, 111, 112, 101]
lasso.toCurrency(1000.49);
// -> $1,000.49
You can use a custom prefix, by including as the first argument
lasso.toCurrency('¢', 1000.49);
// -> ¢1,000.49
lasso.toPercentage(10);
// -> 10%
var match = lasso.trimEnd('Love ');
// -> 'Love'
var match = lasso.trimStart(' Love');
// -> 'Love'
var match = lasso.trimStartUntil('Love this', 't');
// -> 'this'
var match = lasso.trimStartUntil('Love this', /t/);
// -> 'this'
lasso('What is %0?')
.template('Rope')
.splice(1, 0, 'SPLICE')
.value;
// -> WSPLICEhat is Rope?
var lasso = require('lasso');