Home

Awesome

<img src="https://img.icons8.com/fluent/28/000000/idea.png"></img> Version Travis PRs Welcome Code Pen Maintenance dependencies npm license <img src="https://img.icons8.com/fluent/28/000000/idea.png"></img>

<img src="https://img.icons8.com/fluent/42/000000/ok.png"/> Project Goals



<a href='https://codepen.io/zhorton34/pen/LYpoxEY'><img src="https://img.icons8.com/fluent/38/000000/external-link.png"/> Tinkerable Demo</a>


Code Pen Example


<img src="https://img.icons8.com/cotton/58/000000/hot-coffee--v1.png"/> Laravel JS Str


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


<img src="https://img.icons8.com/fluent/38/000000/download.png"/> Installation


<img src="https://img.icons8.com/color/21/000000/npm.png"/> NPM

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

<img src="https://img.icons8.com/color/21/000000/clew.png"/> Yarn

yarn add laravel-js-str --save

<img src="https://img.icons8.com/fluent/21/000000/download-2.png"/> CDN

<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

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

Plural Package Used

const { Str } = require('laravel-js-str');

let plural = Str.plural('car');
// cars 

plural = Str.plural('child');
// children

Plural Package Used

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

Collect.js

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



Versioning


Semantic Versioning

Code StatusStageRuleExample Version
First releaseNew ProductStart with 1.0.01.0.0
Backward compatible bug fixesPatch ReleaseIncrement the third digit1.0.1
Backward compatible new featuresMinor ReleaseIncrement the middle digit and reset last digit to zero1.1.0
Changes that break backward compatibilityMajor ReleaseIncrement the first digit and reset middle and last digits to zero2.0.0

License


MIT © Zachary Horton (Clean Code Studio)