# __String__ operations [![+Professional Support](https://www.totaljs.com/img/badge-support.svg)](https://www.totaljs.com/support/) [![+Chat with contributors](https://www.totaljs.com/img/badge-chat.svg)](https://messenger.totaljs.com) Here is the list of all registered `string` prototypes in jComponent library: - [`String.arg(obj, [encode], [def])`](#method-string-arg-) - [`String.COMPILABLE()`](#method-string-COMPILABLE-) - [`String.encode()`](#method-string-encode-) - [`String.env([search])`](#method-string-env-) - [`String.format([a], [b], [n])`](#method-string-format-) - [`String.isEmail()`](#method-string-isemail-) - [`String.isPhone()`](#method-string-isphone-) - [`String.isURL()`](#method-string-isurl-) - [`String.padLeft(count, [char])`](#method-string-padleft-) - [`String.padRight(count, [char])`](#method-string-padright-) - [`String.params(obj)`](#method-string-params-) - [`String.parseConfig([callback])`](#method-string-parseconfig-) - [`String.parseDate()`](#method-string-parsedate-) - [`String.parseFloat([def])`](#method-string-parsefloat-) - [`String.parseInt([def])`](#method-string-parseint-) - [`String.removeDiacritics()`](#method-string-removediacritics-) - [`String.render(model, [repository])`](#method-string-render-) - [`String.SCOPE(element)`](#method-string-scope-) - [`String.slug([max])`](#method-string-slug-) - [`String.toSearch()`](#method-string-tosearch-) --- ### Method: `String.arg()` `+v17` Method replaces `{key}` for a `obj[key]`. ```javascript String.arg(obj, [encode], [def]); // @obj {Object} A model // @encode {String/Boolean} performs URL encode for values (optional, can be "json", "escape" or "encode"/true) // @def {String} optional, a default value (default: undefined) // return {String} console.log(('Hello {name}!').arg({ name: 'world' })); // Hello world! console.log(('Hello {missing}!').arg({ name: 'world' })); // Hello {missing}! console.log(('Hello {missing}!').arg({ name: 'world' }, 'MISSING')); // Hello MISSING! ``` ### Method: `String.COMPILABLE()` `+v17` Method determines if the string contains some components, `data-bind` or something else for compilation. It's targeted for Tangular templates. ```javascript String.COMPILABLE(); // return {Boolean} ``` ### Method: `String.encode()` `+v18` Method encodes string to HTML safe characters. Internally it uses `Thelpers.encode()`. ```javascript String.encode(); // return {String} ``` ### Method: `String.env()` Method reads a value from environments. ```javascript String.env([search]); // @search {Boolean} enables searching of values in the string // return {String} ('[key]').env(); // value ('[.key]').env(); // +v17 performs GET('key') ('Lorem [key] ipsum').env(); // Lorem [key] ipsum ('Lorem [key] ipsum').env(true); // Lorem value ipsum ``` ### Method: `String.format()` Method formats the string. ```javascript String.format([a], [b], [n]); // return {String} ('My name is {0}.').format('Peter'); // My name is Peter. ('{0} {1}').format('Hello', 'World'); // Hello World ``` ### Method: `String.isEmail()` Method checks if the value is valid email address. Regullar expression for email validation is stored in: `M.validators.email` property. ```javascript String.isEmail(); // return {Boolean} ('your@domain.com').isEmail(); // true ('peter').isEmail(); // false ``` ### Method: `String.isPhone()` Method checks if the value is valid phone (international) number. Regullar expression for phone validation is stored in: `M.validators.phone` property. ```javascript String.isPhone(); // return {Boolean} ('+421903163302').isPhone(); // true ('1234').isPhone(); // false ``` ### Method: `String.isURL()` Method checks if the value is valid URL address. Regullar expression for URL validation is stored in: `M.validators.url` property. ```javascript String.isURL(); // return {Boolean} ('https://www.totaljs.com').isURL(); // true ('www.totaljs.com').isURL(); // false ``` ### Method: `String.padLeft()` Method performs padding. ```javascript String.padLeft(count, [char]); // @count {Number} // @char {String} optional, default " " // return {String} ``` ### Method: `String.padRight()` Method performs padding. ```javascript String.padRight(count, [char]); // @count {Number} // @char {String} optional, default " " // return {String} ``` ### Method: `String.params()` Method peforms a simple formatting. ```javascript String.params(obj); // @obj {Object} // return {String} ('My name is {name}.').params({ name: 'Peter' }); // My name is Peter. ``` ### Method: `String.parseConfig()` Method parses configuration from `String`. ```javascript String.parseConfig([def]. [callback]); // @def {String/Object} Optional, default values // @callback {Function(key, value)} Optional // return {Object} console.log('name:Peter;age:33;required:true'.parseConfig('length:30')); // Output: { length: 30, name: "Peter", age: 33, required: true } ``` ### Method: `String.parseDate()` Method parses date from `String`. It can parses `time` too. ```javascript String.parseDate(); // return {Date} ('1984-12-06').parseDate(); // Thu Dec 06 1984 00:00:00 GMT+0100 (CET) ('06.12.1984').parseDate(); // Thu Dec 06 1984 00:00:00 GMT+0100 (CET) ('06.12.1984 12:00:50').parseDate(); // Thu Dec 06 1984 12:00:50 GMT+0100 (CET) ('12:00').parseDate(); // Current date 12:00:00 GMT+0100 (CET) ('10:00 PM').parseDate(); // +v17 Current date 22:00:00 GMT+0100 (CET) ``` ### Method: `String.parseInt()` Method finds and parses the whole `Number`. ```javascript String.parseInt([def]); // @def {Number} optional, default "0" // return {Number} ('1984').parseInt(); // 1984 ('19.84').parseInt(); // 19 ('-1984').parseInt(); // -1984 ('ABC').parseInt(); // 0 ('ABC').parseInt(1); // 1 ``` ### Method: `String.parseFloat()` Method finds and parses `Float`. ```javascript String.parseFloat([def]); // @def {Number} optional, default "0" // return {Number} ('19.84').parseFloat(); // 19.84 ``` ### Method: `String.removeDiacritics()` Method removes diacritics, basic latin + cyrillic. ```javascript String.removeDiacritics(); // return {String} ('ľščťžýáí').removeDiacritics(); // lsctzyai ``` ### Method: `String.render()` Method performs `Tangular.render()`. ```javascript String.render(model, [repository]); // @model {Object} // @repository {Object} optional // return {String} ('My name is {{ name }}.').render({ name: 'Peter' }); // My name is Peter. ``` ### Method: `String.SCOPE()` `v17` Method returns a path according to the element scope. ```javascript String.SCOPE(element); // @element {Component/Scope/jQuery/Element/Plugin} Important!!! // return {String} ('?.name').SCOPE($('[data---]')); // user.name // self === jComponent ('?.name').SCOPE(self); // user.name ``` ### Method: `String.slug()` Method performs slugify. ```javascript String.slug(max); // @max {Number} optional, default 60 // return {String} ('Peter Širka').slug(); // peter-sirka ``` ### Method: `String.toSearch()` Method creates a search phrase. ```javascript String.toSearch(); // return {String} ('Banská Bystrica').toSearch(); // banska bistrica ```