Additional string extensions with a chainable api
npm install string-extended

string-extended is a Javascript library that can be used standalone or incorporated into extended
``javascript`
var string = require("string-extended");
Or
`javascript`
var myextended = require("extended")
.register(require("string-extended"));
``
npm install string-extended
Or download the source (minified)
toArray
Converts a string to an array
`javascript
string.toArray("a|b|c|d", "|") => ["a","b","c","d"]
string.toArray("a", "|") => ["a"]
string.toArray("", "|") => []
`
pad
Pads a string
`javascript
//pad at the end
string.pad("STR", 5, " ", true) => "STR "
//pad at the beginning
string.pad("STR", 5, "$") => "$$STR"
`
truncate
Truncates a string to the specified length.
`javascript`
//from the beginning
string.truncate("abcdefg", 3) => "abc";
//from the end
string.truncate("abcdefg", 3,true) => "efg"
//omit the length
string.truncate("abcdefg") => "abcdefg"
multiply
Returns a string duplicated n times
`javascript`
string.multiply("HELLO", 5) => "HELLOHELLOHELLOHELLOHELLO"
escape
Escapes a string so that it can safely be used in a RegExp.
`javascript
stringExtended.escape(".$?|{}()[]\/+^"); "//\.\$\?\\|\{\}\(\)\[\]\/\+\^"
stringExtended(".$?|{}()[]\/+^").escape().value(); "//\.\$\?\\|\{\}\(\)\[\]\/\+\^"
`
You can also specify an optional array of characters to ignore when escaping.
`javascript`
stringExtended.escape(".$?|{}()[]\/+^", [".", "?", "{", "["]); //".\$?\\|{\}\(\)[\]\/\+\^"
stringExtended(".$?|{}()[]\/+^").escape([".", "?", "{", "["]).value(); //".\$?\\|{\}\(\)[\]\/\+\^"
trim
Trims white space characters from the beginning and end of a string.
`javascript
stringExtended.trim(" Hello World "); //"Hello World"
stringExtended(" Hello World ").trim().value(); //"Hello World"
`
trimLeft
Trims white space characters from the beginning of a string.
`javascript
stringExtended.trimLeft(" Hello World "); //"Hello World "
stringExtended(" Hello World ").trimLeft().value(); //"Hello World "
`
trimRight
Trims white space characters from the end of a string.
`javascript
stringExtended.trimLeft(" Hello World "); //" Hello World"
stringExtended(" Hello World ").trimLeft().value(); //" Hello World"
`
format
Formats a string with the specified format.
1. String Formats %[options]s
* - : left justified
* Char : padding character Excludes d,j,s
* Number : width
2. Number Formats %[options]d
* - : left justified
* + : signed number
* Char : padding character Excludes d,j,s
* Number : width
3. Object Formats %[options]j
* Number : spacing for object properties.
`javascript
var format = string.format;
format("%s, %s", ["Hello", "World"]) => "Hello, World";
format("%[ 10]s, %[- 10]s", ["Hello", "World"]); //" Hello, World ";
format("%-!10s, %#10s, %10s and %-10s", "apple", "orange", "bananas", "watermelons")
//"apple!!!!!, ####orange, bananas and watermelon"
format("%+d, %+d, %10d, %-10d, %-+#10d, %10d", 1,-2, 1, 2, 3, 100000000000)
//"+1, -2, 0000000001, 2000000000, +3########, 1000000000"
format("%[h:mm a]D", [date]) => 7:32 PM - local -
format("%[h:mm a]Z", [date]) => 12:32 PM - UTC
//When using object formats they must be in an array otherwise
//format will try to interpolate the properties into the string.
format("%j", [{a : "b"}]); //'{"a":"b"}'
format("%1j, %4j", [{a : "b"}, {a : "b"}]); //'{\n "a": "b"\n},\n{\n "a": "b"\n}'
format("{hello}, {world}", {hello : "Hello", world : "World"); //"Hello, World";
format({[-s10]apple}, {[%#10]orange}, {[10]banana} and {[-10]watermelons}",{
apple : "apple",
orange : "orange",
banana : "bananas",
watermelons : "watermelons"
}); //"applesssss, ####orange, bananas and watermelon"
`
style
Styles a string according to the specified styles.
* bold
* bright
* italic
* underline
* inverse
* crossedOut
* blink
* red
* green
* yellow
* blue
* magenta
* cyan
* white
* redBackground
* greenBackground
* yellowBackground
* blueBackground
* magentaBackground
* cyanBackground
* whiteBackground
* grey
* black
`javascript`
//style a string red
string.style('myStr', 'red');
//style a string red and bold
string.style('myStr', ['red', bold]);
characters
* SMILEY : ☺SOLID_SMILEY
* : ☻HEART
* : ♥DIAMOND
* : ♦CLOVE
* : ♣SPADE
* : ♠DOT
* : •SQUARE_CIRCLE
* : ◘CIRCLE
* : ○FILLED_SQUARE_CIRCLE
* : ◙MALE
* : ♂FEMALE
* : ♀EIGHT_NOTE
* : ♪DOUBLE_EIGHTH_NOTE
* : ♫SUN
* : ☼PLAY
* : ►REWIND
* : ◄UP_DOWN
* : ↕PILCROW
* : ¶SECTION
* : §THICK_MINUS
* : ▬SMALL_UP_DOWN
* : ↨UP_ARROW
* : ↑DOWN_ARROW
* : ↓RIGHT_ARROW
* : →LEFT_ARROW
* : ←RIGHT_ANGLE
* : ∟LEFT_RIGHT_ARROW
* : ↔TRIANGLE
* : ▲DOWN_TRIANGLE
* : ▼HOUSE
* : ⌂C_CEDILLA
* : ÇU_UMLAUT
* : üE_ACCENT
* : éA_LOWER_CIRCUMFLEX
* : âA_LOWER_UMLAUT
* : äA_LOWER_GRAVE_ACCENT
* : àA_LOWER_CIRCLE_OVER
* : åC_LOWER_CIRCUMFLEX
* : çE_LOWER_CIRCUMFLEX
* : êE_LOWER_UMLAUT
* : ëE_LOWER_GRAVE_ACCENT
* : èI_LOWER_UMLAUT
* : ïI_LOWER_CIRCUMFLEX
* : îI_LOWER_GRAVE_ACCENT
* : ìA_UPPER_UMLAUT
* : ÄA_UPPER_CIRCLE
* : ÅE_UPPER_ACCENT
* : ÉA_E_LOWER
* : æA_E_UPPER
* : ÆO_LOWER_CIRCUMFLEX
* : ôO_LOWER_UMLAUT
* : öO_LOWER_GRAVE_ACCENT
* : òU_LOWER_CIRCUMFLEX
* : ûU_LOWER_GRAVE_ACCENT
* : ùY_LOWER_UMLAUT
* : ÿO_UPPER_UMLAUT
* : ÖU_UPPER_UMLAUT
* : ÜCENTS
* : ¢POUND
* : £YEN
* : ¥CURRENCY
* : ¤PTS
* : ₧FUNCTION
* : ƒA_LOWER_ACCENT
* : áI_LOWER_ACCENT
* : íO_LOWER_ACCENT
* : óU_LOWER_ACCENT
* : úN_LOWER_TILDE
* : ñN_UPPER_TILDE
* : ÑA_SUPER
* : ªO_SUPER
* : ºUPSIDEDOWN_QUESTION
* : ¿SIDEWAYS_L
* : ⌐NEGATION
* : ¬ONE_HALF
* : ½ONE_FOURTH
* : ¼UPSIDEDOWN_EXCLAMATION
* : ¡DOUBLE_LEFT
* : «DOUBLE_RIGHT
* : »LIGHT_SHADED_BOX
* : ░MEDIUM_SHADED_BOX
* : ▒DARK_SHADED_BOX
* : ▓VERTICAL_LINE
* : │MAZE__SINGLE_RIGHT_T
* : ┤MAZE_SINGLE_RIGHT_TOP
* : ┐MAZE_SINGLE_RIGHT_BOTTOM_SMALL
* : ┘MAZE_SINGLE_LEFT_TOP_SMALL
* : ┌MAZE_SINGLE_LEFT_BOTTOM_SMALL
* : └MAZE_SINGLE_LEFT_T
* : ├MAZE_SINGLE_BOTTOM_T
* : ┴MAZE_SINGLE_TOP_T
* : ┬MAZE_SINGLE_CENTER
* : ┼MAZE_SINGLE_HORIZONTAL_LINE
* : ─MAZE_SINGLE_RIGHT_DOUBLECENTER_T
* : ╡MAZE_SINGLE_RIGHT_DOUBLE_BL
* : ╛MAZE_SINGLE_RIGHT_DOUBLE_T
* : ╢MAZE_SINGLE_RIGHT_DOUBLEBOTTOM_TOP
* : ╖MAZE_SINGLE_RIGHT_DOUBLELEFT_TOP
* : ╕MAZE_SINGLE_LEFT_DOUBLE_T
* : ╞MAZE_SINGLE_BOTTOM_DOUBLE_T
* : ╧MAZE_SINGLE_TOP_DOUBLE_T
* : ╤MAZE_SINGLE_TOP_DOUBLECENTER_T
* : ╥MAZE_SINGLE_BOTTOM_DOUBLECENTER_T
* : ╨MAZE_SINGLE_LEFT_DOUBLERIGHT_BOTTOM
* : ╘MAZE_SINGLE_LEFT_DOUBLERIGHT_TOP
* : ╒MAZE_SINGLE_LEFT_DOUBLEBOTTOM_TOP
* : ╓MAZE_SINGLE_LEFT_DOUBLETOP_BOTTOM
* : ╙MAZE_SINGLE_LEFT_TOP
* : ΓMAZE_SINGLE_RIGHT_BOTTOM
* : ╜MAZE_SINGLE_LEFT_CENTER
* : ╟MAZE_SINGLE_DOUBLECENTER_CENTER
* : ╫MAZE_SINGLE_DOUBLECROSS_CENTER
* : ╪MAZE_DOUBLE_LEFT_CENTER
* : ╣MAZE_DOUBLE_VERTICAL
* : ║MAZE_DOUBLE_RIGHT_TOP
* : ╗MAZE_DOUBLE_RIGHT_BOTTOM
* : ╝MAZE_DOUBLE_LEFT_BOTTOM
* : ╚MAZE_DOUBLE_LEFT_TOP
* : ╔MAZE_DOUBLE_BOTTOM_T
* : ╩MAZE_DOUBLE_TOP_T
* : ╦MAZE_DOUBLE_LEFT_T
* : ╠MAZE_DOUBLE_HORIZONTAL
* : ═MAZE_DOUBLE_CROSS
* : ╬SOLID_RECTANGLE
* : █THICK_LEFT_VERTICAL
* : ▌THICK_RIGHT_VERTICAL
* : ▐SOLID_SMALL_RECTANGLE_BOTTOM
* : ▄SOLID_SMALL_RECTANGLE_TOP
* : ▀PHI_UPPER
* : ΦINFINITY
* : ∞INTERSECTION
* : ∩DEFINITION
* : ≡PLUS_MINUS
* : ±GT_EQ
* : ≥LT_EQ
* : ≤THEREFORE
* : ⌠SINCE
* : ∵DOESNOT_EXIST
* : ∄EXISTS
* : ∃FOR_ALL
* : ∀EXCLUSIVE_OR
* : ⊕BECAUSE
* : ⌡DIVIDE
* : ÷APPROX
* : ≈DEGREE
* : °BOLD_DOT
* : ∙DOT_SMALL
* : ·CHECK
* : √ITALIC_X
* : ✗SUPER_N
* : ⁿSQUARED
* : ²CUBED
* : ³SOLID_BOX
* : ■PERMILE
* : ‰REGISTERED_TM
* : ®COPYRIGHT
* : ©TRADEMARK
* : ™BETA
* : βGAMMA
* : γZETA
* : ζETA
* : ηIOTA
* : ιKAPPA
* : κLAMBDA
* : λNU
* : νXI
* : ξOMICRON
* : οRHO
* : ρUPSILON
* : υCHI_LOWER
* : φCHI_UPPER
* : χPSI
* : ψALPHA
* : αESZETT
* : ßPI
* : πSIGMA_UPPER
* : ΣSIGMA_LOWER
* : σMU
* : µTAU
* : τTHETA
* : ΘOMEGA
* : ΩDELTA
* : δPHI_LOWER
* : φEPSILON` : "ε"
*