Fluent JavaScript Stringable Package

- [x] Fluent
- [x] Stringable
- [x] Simplified


"Laravel's Illuminate\Str & Illuminate\Stringify Including Str.of() In Javascript"


npm install --save-dev laravel-js-str

yarn add laravel-js-str --save

<script src='https://unpkg.com/laravel-js-str@latest/build/index.min.js'></script>
Str
Documentation For Each String Method Points To Laravel. Javascript examples are below, Laravel docs will specify what each method specifically does. Replace Str::method() with Str.() when using this package
- Str.after
- Str.afterLast
- Str.ascii
- Str.before
- Str.beforeLast
- Str.between
- Str.contains
- Str.containsAll
- Str.finish
- Str.is
- Str.isAscii
- Str.isUuid
- Str.length
- Str.limit
- Str.lower
- Str.orderedUuid
- Str.plural
- Str.random
- Str.replaceArray
- Str.replaceFirst
- Str.replaceLast
- Str.singular
- Str.slug
- Str.start
- Str.substr
- Str.ucfirst
- Str.upper
- Str.uuid
- Str.words
const { Str } = require('laravel-js-str'); let slice = Str.after('This is my name', 'This is'); // ' my name'
const { Str } = require('laravel-js-str'); let slice = Str.afterLast('App\Http\Controllers\Controller', '\\'); // 'Controller'
const { Str } = require('laravel-js-str'); let slice = Str.ascii('û'); // 'u'
const { Str } = require('laravel-js-str'); let slice = Str.before('This is my name', 'my name'); // 'This is '
const { Str } = require('laravel-js-str'); let slice = Str.beforeLast('This is my name', 'is'); // 'This '
const { Str } = require('laravel-js-str'); let slice = Str.between('This is my name', 'This', 'name'); // ' is my '
const { Str } = require('laravel-js-str'); let converted = Str.camel('foo_bar'); // fooBar
const { Str } = require('laravel-js-str'); let contains = Str.contains('This is my name', 'my'); // true
const { Str } = require('laravel-js-str'); let contains = Str.contains('This is my name', ['my', 'foo']); // true
const { Str } = require('laravel-js-str'); let containsAll = Str.containsAll('This is my name', ['my', 'name']); // true
const { Str } = require('laravel-js-str'); let result = Str.endsWith('This is my name', 'name'); // true
const { Str } = require('laravel-js-str'); let result = Str.endsWith('This is my name', ['name', 'foo']); // true result = Str.endsWith('This is my name', ['this', 'foo']); // false
const { Str } = require('laravel-js-str'); let adjusted = Str.finish('this/string', '/'); // this/string/ adjusted = Str.finish('this/string/', '/'); // this/string/
const { Str } = require('laravel-js-str'); let matches = Str.is('foo*', 'foobar'); // true matches = Str.is('baz*', 'foobar'); // false
isAscii is experimental, not confident it works in all scenarios
const { Str } = require('laravel-js-str'); let isAscii = Str.isAscii('Taylor'); // true isAscii = Str.isAscii('ü'); // false
const { Str } = require('laravel-js-str'); let isUuid = Str.isUuid('a0a2a2d2-0b87-4a18-83f2-2529882be2de'); // true isUuid = Str.isUuid('laravel'); // false
const { Str } = require('laravel-js-str'); let converted = Str.kebab('fooBar'); // foo-bar
const { Str } = require('laravel-js-str'); let length = Str.length('Laravel'); // 7
const { Str } = require('laravel-js-str'); let truncated = Str.limit('The quick brown fox jumps over the lazy dog', 0); // The quick brown fox...
const { Str } = require('laravel-js-str'); let truncated = Str.limit('The quick brown fox jumps over the lazy dog', 0, '(...)'); // The quick brown fox (...)
const { Str } = require('laravel-js-str'); let converted = Str.lower('LARAVEL'); // laravel
const { Str } = require('laravel-js-str'); let plural = Str.plural('car'); // cars plural = Str.plural('child'); // children
const { Str } = require('laravel-js-str'); let plural = Str.plural('child'); // children plural = Str.plural('child'); // child
const { Str } = require('laravel-js-str'); let random = Str.random(40);
const { Str } = require('laravel-js-str'); let string = 'The event will take place between ? and ?'; let replaced = Str.replaceArray(['?', '8:30', '9:00'], string); // The event will take place between 8:30 and 9:00
const { Str } = require('laravel-js-str'); let replaced = Str.replaceFirst('the', 'a', 'the quick brown fox jumps over the lazy dog'); // a quick brown fox jumps over the lazy dog
const { Str } = require('laravel-js-str'); let replaced = Str.replaceLast('the', 'a', 'the quick brown fox jumps over the lazy dog'); // the quick brown fox jumps over a lazy dog
const { Str } = require('laravel-js-str'); let singular = Str.singular('cars'); // car singular = Str.singular('children'); // child
const { Str } = require('laravel-js-str'); let slug = Str.slug('Laravel 5 Framework', '-'); // laravel-5-framework
const { Str } = require('laravel-js-str'); let converted = Str.snake('fooBar'); // foo_bar
const { Str } = require('laravel-js-str'); let adjusted = Str.start('this/string', '/'); // /this/string adjusted = Str.start('/this/string', '/'); // /this/string
const { Str } = require('laravel-js-str'); let result = Str.startsWith('This is my name', This'); // true
const { Str } = require('laravel-js-str'); let converted = Str.studly('foo_bar'); // FooBar
const { Str } = require('laravel-js-str'); let converted = Str.substr('The Laravel Framework', , ); // Laravel
const { Str } = require('laravel-js-str'); let converted = Str.title('a nice title uses the correct case'); // A Nice Title Uses The Correct Case
const { Str } = require('laravel-js-str'); let string = Str.ucfirst('foo bar'); // Foo bar
const { Str } = require('laravel-js-str'); let string = Str.upper('laravel'); // LARAVEL
const { Str } = require('laravel-js-str'); return Str.uuid();
const { Str } = require('laravel-js-str'); Str.words('Perfectly balanced, as all things should be.', 3, '>>>'); // Perfectly balanced, as >>>
const { Str } = require('laravel-js-str'); let slice = Str.of('This is my name').after('This is'); // ' my name'
const { Str } = require('laravel-js-str'); let slice = Str.of('App\Http\Controllers\Controller').afterLast('\\'); // 'Controller'
const { Str } = require('laravel-js-str'); let string = Str.of('Taylor').append(' Otwell'); // 'Taylor Otwell'
Experimental Method, not sure this works in all cases
const { Str } = require('laravel-js-str'); let string = Str.of('ü').ascii(); // 'u'
const { Str } = require('laravel-js-str'); let string = Str.of('/foo/bar/baz').basename(); // 'baz'
const { Str } = require('laravel-js-str'); let string = Str.of('/foo/bar/baz.jpg').basename('.jpg'); // 'baz'
const { Str } = require('laravel-js-str'); let slice = Str.of('This is my name').before('my name'); // 'This is '
const { Str } = require('laravel-js-str'); let slice = Str.of('This is my name').beforeLast('is'); // 'This '
const { Str } = require('laravel-js-str'); let converted = Str.of('foo_bar').camel(); // fooBar
const { Str } = require('laravel-js-str'); let contains = Str.of('This is my name').contains('my'); // true
const { Str } = require('laravel-js-str'); let contains = Str.of('This is my name').contains(['my', foo']); // true
const { Str } = require('laravel-js-str'); let containsAll = Str.of('This is my name').containsAll(['my', 'name']); // true
const { Str } = require('laravel-js-str'); let string = Str.of('/foo/bar/baz').dirname(); // '/foo/bar'
const { Str } = require('laravel-js-str'); let string = Str.of('/foo/bar/baz').dirname(2); // '/foo'
const { Str } = require('laravel-js-str'); let result = Str.of('This is my name').endsWith('name'); // true
const { Str } = require('laravel-js-str'); let result = Str.of('This is my name').endsWith(['name', 'foo']); // true result = Str.of('This is my name').endsWith(['this', 'foo']); // false
const { Str } = require('laravel-js-str'); let result = Str.of('Laravel').exactly('Laravel'); // true
const { Str } = require('laravel-js-str'); let collection = Str.of('foo bar baz').explode(' '); // collect(['foo', 'bar', 'baz'])
const { Str } = require('laravel-js-str'); let adjusted = Str.of('this/string').finish('/'); // this/string/ adjusted = Str.of('this/string/').finish('/'); // this/string/
const { Str } = require('laravel-js-str'); let matches = Str.of('foobar').is('foo*'); // true matches = Str.of('foobar').is('baz*'); // false
isAscii is Experimental, not positive its correct in all cases
const { Str } = require('laravel-js-str'); let result = Str.of('Taylor').isAscii(); // true result = Str.of('ü').isAcii(); // false
const { Str } = require('laravel-js-str'); let result = Str.of(' ').trim().isEmpty(); // true result = Str.of('Laravel').trim().isEmpty(); // false
const { Str } = require('laravel-js-str'); let result = Str.of(' ').trim().isNotEmpty(); // false result = Str.of('Laravel').trim().isNotEmpty(); // true
const { Str } = require('laravel-js-str'); let converted = Str.of('fooBar').kebab(); // foo-bar
const { Str } = require('laravel-js-str'); let length = Str.of('Laravel').length(); // 7
const { Str } = require('laravel-js-str'); let truncated = Str.of('The quick brown fox jumps over the lazy dog').limit(20); // The quick brown fox...
const { Str } = require('laravel-js-str'); let truncated = Str.of('The quick brown fox jumps over the lazy dog').limit(20, ' (...)'); // The quick brown fox (...)
const { Str } = require('laravel-js-str'); let result = Str.of('LARAVEL').lower(); // 'laravel'
const { Str } = require('laravel-js-str'); let string = Str.of(' Laravel ').ltrim(); // 'Laravel ' string = Str.of('/Laravel/').ltrim('/'); // 'Laravel/'
const { Str } = require('laravel-js-str'); let result = Str.of('foo bar').match('/bar/'); // 'bar' result = Str.of('foo bar').match('/foo (.*)/'); // 'bar'
Match All Coming Soon
const { Str } = require('laravel-js-str'); let result = Str.of('bar foo bar').matchAll('/bar/'); // collect(['bar', 'bar'])
const { Str } = require('laravel-js-str'); let result = Str.of('bar fun bar fly').matchAll('/f(\w*)/'); // collect(['un', 'ly']);
const { Str } = require('laravel-js-str'); let plural = Str.of('car').plural(); // cars plural = Str.of('child').plural(); // children
const { Str } = require('laravel-js-str'); let plural = Str.of('child').plural(2); // children plural = Str.of('child').plural(1); // child
const { Str } = require('laravel-js-str'); let string = Str.of('Framework').prepend('Laravel '); // Laravel Framework
const { Str } = require('laravel-js-str'); let replaced = Str.of('Laravel 6.x').replace('6.x', '7.x'); // Laravel 7.x
const { Str } = require('laravel-js-str'); let string = 'The event will take place between ? and ?'; let replaced = Str.of(string).replaceArray('?', ['8:30', '9:00']); // The event will take place between 8:30 and 9:00
const { Str } = require('laravel-js-str'); let replaced = Str.of('the quick brown fox jumps over the lazy dog').replaceFirst('the', 'a'); // a quick brown fox jumps over the lazy dog
const { Str } = require('laravel-js-str'); let replaced = Str.of('the quick brown fox jumps over the lazy dog').replaceLast('the', 'a'); // the quick brown fox jumps over a lazy dog
const { Str } = require('laravel-js-str'); let replaced = Str.of('(+1) 501-555-1000').replace('/[^A-Za-z0-9]++/', ''); //'15015551000'
const { Str } = require('laravel-js-str'); let string = Str.of(' Laravel ').rtrim(); // ' Laravel' string = Str.of('/Laravel/').rtrim('/'); // '/Laravel'
const { Str } = require('laravel-js-str'); let singular = Str.of('cars').singular(); // car singular = Str.of('children').singular(); // child
const { Str } = require('laravel-js-str'); let slug = Str.of('Laravel Framework').slug('-'); // laravel-framework
const { Str } = require('laravel-js-str'); let converted = Str.of('fooBar').snake(); // foo_bar
const { Str } = require('laravel-js-str'); let segments = Str.of('one, two, three').split('/[\s, +/'); // collect(["one", "two", "three"])
const { Str } = require('laravel-js-str'); let adjusted = Str.of('this/string').start('/'); // /this/string adjusted = Str.of('/this/string').start('/'); // /this/string
const { Str } = require('laravel-js-str'); let result = Str.of('This is my name').startsWith('This'); // true
const { Str } = require('laravel-js-str'); let converted = Str.of('foo_bar').studly(); // FooBar
const { Str } = require('laravel-js-str'); let string = Str.of('Laravel Framework').substr(8); // Framework string = Str.of('Laravel Framework').substr(8, ); // Frame
const { Str } = require('laravel-js-str'); let converted = Str.of('a nice title uses the correct case').title(); // A Nice Title Uses The Correct Case
const { Str } = require('laravel-js-str'); let string = Str.of(' Laravel ').trim(); // 'Laravel' string = Str.of('/Laravel/').trim('/'); // 'Laravel'
const { Str } = require('laravel-js-str'); let string = Str.of('foo bar').ucfirst(); // Foo bar
const { Str } = require('laravel-js-str'); let adjusted = Str.of('laravel').upper(); // LARAVEL
const { Str } = require('laravel-js-str'); let string = Str.of(' ').whenEmpty(function(string) { return string.trim().prepend('Laravel'); }); // 'Laravel'
const { Str } = require('laravel-js-str'); let string = Str.of('Perfectly balanced, as all things should be.').words(3, '>>>'); // Perfectly balanced, as >>>
Playground Examples
Curious, but not 100% on whether this is what you're looking for?
The most powerful method is Str.of('example'), allowing us to fluently chain Str methods together
Example
let { Str } = require('laravel-js-str'); let home = 'https://planets.com'; let title = 'hello mars, a cool world for you to visit, maybe?'; let article = Str.of(title).replaceFirst(',', '') .after('hello') .before('for you') .trim() .start('/') .finish('/') .kebab(); let resource = home + article // resource value: // 'https://planets.com/mars-a-cool-world/' // // article value: // Stringable: { value: 'https://planets.com/mars-a-cool-world-to-visit', replace, before, after, etc... } //
Utilization
The most powerful method is Str.of('example'), allowing us to fluently chain Str methods together
Example
let { Str } = require('laravel-js-str'); let home = 'https://planets.com'; let title = 'hello mars, a cool world for you to visit, maybe?'; let article = Str.of(title).replaceFirst(',', '') .after('hello') .before('for you') .trim() .start('/') .finish('/') .kebab(); let resource = home + article // resource value: // 'https://planets.com/mars-a-cool-world/' // // article value: // Stringable: { value: 'https://planets.com/mars-a-cool-world-to-visit', replace, before, after, etc... } //
Contribute
PRs are welcomed to this project.
If you want to improve this package, add
functionality or improve the docs please feel free to submit a PR.
Security Vulnerabilities
If you discover a security vulnerability within Clean Code Studio Packages Or Specifically within
laravel-js-str, please send an e-mail to Zachary Horton via zak@cleancode.studio. All security vulnerabilities will be promptly addressed.
Change Log
Release 1.0.0
- Initial Release
Versioning
Semantic Versioning
Code Status | Stage | Rule | Example Version |
---|---|---|---|
First release | New Product | Start with 1.0.0 | 1.0.0 |
Backward compatible bug fixes | Patch Release | Increment the third digit | 1.0.1 |
Backward compatible new features | Minor Release | Increment the middle digit and reset last digit to zero | 1.1.0 |
Changes that break backward compatibility | Major Release | Increment the first digit and reset middle and last digits to zero | 2.0.0 |
License
MIT © Zachary Horton (Clean Code Studio) - Clean Code Studio Packages
Top comments (1)