Nodejs String Format format(object)

Here you can find the source of format(object)

Method Source Code

//Problem 1. Format with placeholders
//Write a function that formats a string. The function should have placeholders, as shown in the example
//Add the function to the String.prototype
//Example://from   w  w w  .  j  a v a2s  .co  m
//input   output
//var options = {name: 'John'};
//'Hello, there! Are you #{name}?'.format(options);   'Hello, there! Are you John'
//var options = {name: 'John', age: 13};
//'My name is #{name} and I am #{age}-years-old').format(options);   'My name is John and I am 13-year
String.prototype.format = function (object) {
    var self=this;
    for (var item in object) {
        var replaceItem = object[item],
            regExp = new RegExp('#{' + item + '}');
        self=self.replace(regExp, replaceItem);
    }
    return self;
}

var object = {
    name: 'John',
    age: 15,
    gender: 'male'
};
var str = 'My name is #{name}, I am #{age}-years-old and my gender is #{gender}'.format(object);
console.log('TASK 1:\n'+str);

Related

  1. format(obj)
    var path = require('path');
    var fs = require('fs');
    String.prototype.format = function(obj) {
        var args = arguments;
        var str = this;
        return str.replace(/\{[\w\d\._-]+\}/g, function(part) {
            part = part.slice(1, -1);
            var index = parseInt(part, 10);
            if (isNaN(index)) {
    ...
    
  2. format(obj)
    String.prototype.format = function(obj) {
      var args = arguments;
      var str = this;
      return str.replace(/\{[\w\d\._-]+\}/g, function(part) {
        part = part.slice(1, -1);
        var index = parseInt(part, 10);
        if (isNaN(index)) {
          return dottedGet(obj, part);
        } else {
    ...
    
  3. format(obj)
    function getParameterByName(name) {
        name = name.replace(/[\[]/, "\\[").replace(/[\]]/, "\\]");
        var regex = new RegExp("[\\?&]" + name + "=([^&#]*)"),
            results = regex.exec(location.search);
        return results === null ? "" : decodeURIComponent(results[1].replace(/\+/g, " "));
    String.prototype.format = function (obj) {
        return this.replace(/\{\s*([^}\s]+)\s*\}/g, function (m, p1, offset, string) {
            return obj[p1]
    ...
    
  4. format(obj)
    String.prototype.format = function(obj){
        var placeHolders = this.match(/#{\w+}/g),
            prop,
            result = this;
        for (var i = 0; i < placeHolders.length; i++) {
            prop = placeHolders[i].substring(2, placeHolders[i].length - 1);
            if (obj[prop]){
                result = result.replace(placeHolders[i], obj[prop]);
        return result;
    };
    var options = {name: 'John'};
    console.log('Hello, there! Are you #{name}?'.format(options));
    var options2 = {name: 'John', age: 13};
    console.log('My name is #{name} and I am #{age}-years-old'.format(options2));
    
  5. format(obj)
    String.prototype.format = function(obj) {
      var args = arguments;
      var str = this;
      return str.replace(/\{[\w\d_-]+\}/g, function(part) {
        part = part.slice(1, -1);
        var index = parseInt(part, 10);
        if (isNaN(index)) {
          return obj[part];
        } else {
    ...
    
  6. format(options)
    function solve(args) {
    String.prototype.format = function(options) {
        var prop,
            result = this;
        for (prop in options) {
            result = result.replace(new RegExp('#{' + prop + '}', 'g'), options[prop]);
        return result;
    };
    ...
    
  7. format(options)
    String.prototype.format = function(options) {
      var option,
        toReplace,
        str = this;
      for (option in options) {
        toReplace = new RegExp('#{' + option + '}');
        str = str.replace(toReplace, options[option]);
      console.log(str);
    ...
    
  8. format(options)
    String.prototype.format = function(options) {
      var option,
        regex,
        formatted = this;
      for (option in options) {
        regex = new RegExp('#{' + option + '}', 'g');
        formatted = formatted.replace(regex, options[option]);
      return formatted;
    ...
    
  9. format(options)
    String.prototype.format = function (options) {
      return this.replace(/(?:#{(\w+)})/g, function ($0, $1) {
        return options[$1];
      });
    };
    var options1 = {name: 'John'};
    console.log('Hello, there! Are you #{name}?'.format(options1));
    var options2 = {name: 'John', age: 13};
    console.log('My name is #{name} and I am #{age}-years-old'.format(options2));
    ...