Ember.String Namespace packages/ember-runtime/lib/system/string.js:143


PUBLIC

Defines string helper methods including string formatting and localization. Unless EmberENV.EXTEND_PROTOTYPES.String is false these methods will also be added to the String.prototype as well.

Show:

Methods

Show:

camelize

(str) String public

Returns the lowerCamelCase form of a string.

1
2
3
4
5
6
'innerHTML'.camelize();          // 'innerHTML'
'action_name'.camelize();        // 'actionName'
'css-class-name'.camelize();     // 'cssClassName'
'my favorite items'.camelize();  // 'myFavoriteItems'
'My Favorite Items'.camelize();  // 'myFavoriteItems'
'private-docs/owner-invoice'.camelize(); // 'privateDocs/ownerInvoice'

Parameters:

str String
The string to camelize.

Returns:

String
the camelized string.

capitalize

(str) String public

Returns the Capitalized form of a string

1
2
3
4
5
'innerHTML'.capitalize()         // 'InnerHTML'
'action_name'.capitalize()       // 'Action_name'
'css-class-name'.capitalize()    // 'Css-class-name'
'my favorite items'.capitalize() // 'My favorite items'
'privateDocs/ownerInvoice'.capitalize(); // 'PrivateDocs/ownerInvoice'

Parameters:

str String
The string to capitalize.

Returns:

String
The capitalized string.

classify

(str) String public

Returns the UpperCamelCase form of a string.

1
2
3
4
5
'innerHTML'.classify();          // 'InnerHTML'
'action_name'.classify();        // 'ActionName'
'css-class-name'.classify();     // 'CssClassName'
'my favorite items'.classify();  // 'MyFavoriteItems'
'private-docs/owner-invoice'.classify(); // 'PrivateDocs/OwnerInvoice'

Parameters:

str String
the string to classify

Returns:

String
the classified string

dasherize

(str) String public

Replaces underscores, spaces, or camelCase with dashes.

1
2
3
4
5
'innerHTML'.dasherize();          // 'inner-html'
'action_name'.dasherize();        // 'action-name'
'css-class-name'.dasherize();     // 'css-class-name'
'my favorite items'.dasherize();  // 'my-favorite-items'
'privateDocs/ownerInvoice'.dasherize(); // 'private-docs/owner-invoice'

Parameters:

str String
The string to dasherize.

Returns:

String
the dasherized string.

decamelize

(str) String public

Converts a camelized string into all lower case separated by underscores.

1
2
3
4
'innerHTML'.decamelize();           // 'inner_html'
'action_name'.decamelize();        // 'action_name'
'css-class-name'.decamelize();     // 'css-class-name'
'my favorite items'.decamelize();  // 'my favorite items'

Parameters:

str String
The string to decamelize.

Returns:

String
the decamelized string.

fmt

(str, formats) String deprecated public

Use ES6 template strings instead: http://babeljs.io/docs/learn-es2015/#template-strings

Apply formatting options to the string. This will look for occurrences of "%@" in your string and substitute them with the arguments you pass into this method. If you want to control the specific order of replacement, you can add a number after the key as well to indicate which argument you want to insert.

Ordered insertions are most useful when building loc strings where values you need to insert may appear in different orders.

1
2
"Hello %@ %@".fmt('John', 'Doe');     // "Hello John Doe"
"Hello %@2, %@1".fmt('John', 'Doe');  // "Hello Doe, John"

Parameters:

str String
The string to format
formats Array
An array of parameters to interpolate into string.

Returns:

String
formatted string

htmlSafe

Handlebars.SafeString public static

Mark a string as safe for unescaped output with Ember templates. If you return HTML from a helper, use this function to ensure Ember's rendering layer does not escape the HTML.

1
Ember.String.htmlSafe('<div>someString</div>')

Returns:

Handlebars.SafeString
A string that will not be HTML escaped by Handlebars.

isHTMLSafe

Boolean public static

Detects if a string was decorated using Ember.String.htmlSafe.

1
2
3
4
5
var plainString = 'plain string',
    safeString = Ember.String.htmlSafe('<div>someValue</div>');

Ember.String.isHTMLSafe(plainString); // false
Ember.String.isHTMLSafe(safeString);  // true

Returns:

Boolean
`true` if the string was decorated with `htmlSafe`, `false` otherwise.

loc

(str, formats) String public

Formats the passed string, but first looks up the string in the localized strings hash. This is a convenient way to localize text. See Ember.String.fmt() for more information on formatting.

Note that it is traditional but not required to prefix localized string keys with an underscore or other character so you can easily identify localized strings.

1
2
3
4
5
6
7
Ember.STRINGS = {
  '_Hello World': 'Bonjour le monde',
  '_Hello %@ %@': 'Bonjour %@ %@'
};

Ember.String.loc("_Hello World");  // 'Bonjour le monde';
Ember.String.loc("_Hello %@ %@", ["John", "Smith"]);  // "Bonjour John Smith";

Parameters:

str String
The string to format
formats Array
Optional array of parameters to interpolate into string.

Returns:

String
formatted string

underscore

(str) String public

More general than decamelize. Returns the lower_case_and_underscored form of a string.

1
2
3
4
5
'innerHTML'.underscore();          // 'inner_html'
'action_name'.underscore();        // 'action_name'
'css-class-name'.underscore();     // 'css_class_name'
'my favorite items'.underscore();  // 'my_favorite_items'
'privateDocs/ownerInvoice'.underscore(); // 'private_docs/owner_invoice'

Parameters:

str String
The string to underscore.

Returns:

String
the underscored string.

w

(str) Array public

Splits a string into separate units separated by spaces, eliminating any empty strings in the process. This is a convenience method for split that is mostly useful when applied to the String.prototype.

1
2
3
4
5
6
7
Ember.String.w("alpha beta gamma").forEach(function(key) {
  console.log(key);
});

// > alpha
// > beta
// > gamma

Parameters:

str String
The string to split

Returns:

Array
array containing the split strings