npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

laravel-js-str

v1.0.6

Published

---

Downloads

327

Readme

Version Travis PRs Welcome Code Pen Maintenance dependencies npm license

Project Goals


  • [x] Fluent
  • [x] Stringable
  • [x] Simplified

Tinkerable Demo


Code Pen Example


Laravel JS Str


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


Installation


NPM

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

Yarn

yarn add laravel-js-str --save

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 [email protected]. 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)