lasso-string
v5.4.1
Published
A function with methods to manipulate strings and get information about strings.
Downloads
129
Readme
Lasso
An interface for editing strings
Methods
.between
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'
}.camelCase
lasso.camelCase('Let\'s JavaScript case this thing');
// -> letsJavascriptCaseThisThing.capitalCase
lasso.capitalCase('let\'s CapitalCase this thing');
// -> Let's CapitalCase This Thing.differentWords
lasso.differentWords('a b c d', 'a d f b');
// -> ['c', 'f'].distance
Calculates the Levenshtein distance between two words.
Based on this implementation by Andrei Mackenzie
lasso.distance('This distance', 'That distant');
// -> 4.ellipsis
lasso.ellipsis(String, Limit)
Adds '...' at the end of a string if it exceeds the length of the second argument
lasso.ellipsis('This distance', 5);
// -> This....fuzzy
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"}]Fuzzy search properties
.distanceis the distance between the first and last match.closestis theindexof the closest match.farthestis theindexof the farthest match.differenceis the difference between theclosestandfarthestmatch
var match = lasso.fuzzy('this is being searched', 'tbs');
// match.distance -> 14
// match.closest -> 6
// match.farthest -> 7
// match.difference -> 1.group
lasso.group(Number)
Groups numbers together using a comma
lasso.group(1000.49);
// -> 1,000.49.indexesOf
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/);Match Type
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'];.sameWords
lasso.sameWords('a b c', 'a');
// -> ['a'].splice
lasso.splice('string', 1, 0, 'INSERT');
// -> sINSERTtring.template
lasso.template('Use %s to template a string', 'Rope');
// -> Use Rope to template a stringYou can also reference indexes:
lasso.template('indexed %0', 'values');
// -> indexed values.toChar
lasso.toCharCode(82);
// -> R
lasso.toCharCode([82, 111, 112, 101]);
// -> Rope.toCharCode
lasso.toCharCode('s');
// -> [115]
lasso.toCharCode('Rope');
// -> [82, 111, 112, 101].toCurrency
lasso.toCurrency(1000.49);
// -> $1,000.49You can use a custom prefix, by including as the first argument
lasso.toCurrency('¢', 1000.49);
// -> ¢1,000.49.toPercentage
lasso.toPercentage(10);
// -> 10%Trim End
var match = lasso.trimEnd('Love ');
// -> 'Love'Trim Start
var match = lasso.trimStart(' Love');
// -> 'Love'Trim Start Until
var match = lasso.trimStartUntil('Love this', 't');
// -> 'this' var match = lasso.trimStartUntil('Love this', /t/);
// -> 'this'Chain methods together
lasso('What is %0?')
.template('Rope')
.splice(1, 0, 'SPLICE')
.value;
// -> WSPLICEhat is Rope?Including the module with Node JS (CommonJS)
var lasso = require('lasso');