"use strict";
String.prototype.hasVowels = function() {
  if (this.match(/[abcde]/gi) === null) {
    return false;
  }
  return true;
};

String.prototype.toUpper = function() {
  return this.replace(/[a-z]/gi, function(val) {

    // check if the char is lowercase i.e. ascii 97-122
    var ascii = val.charCodeAt();

    if (ascii >= 97 && ascii <= 122) {
      // convert to capital
      return String.fromCharCode(ascii - 32);
    } else {
      return val;
    }
  });
};

String.prototype.toLower = function() {
  return this.replace(/[A-Z]/gi, function(val) {

    // check if the char is uppercase 65-90
    var ascii = val.charCodeAt();

    if (ascii >= 65 && ascii <= 90) {
      // convert to lower
      return String.fromCharCode(ascii + 32);
    } else {
      return val;
    }
  });
};

String.prototype.ucFirst = function() {
  return this.replace(/[a-zA-Z]{1}/, function(val) {
    return val.toUpper();
  });
};

String.prototype.isQuestion = function() {
  if (this.match(/[a-zA-Z.;]{1,}[?]/) === null) {
    return false;
  }

  return true;
};

String.prototype.words = function() {
  return this.split(/\s/);
};

String.prototype.wordCount = function() {

};

String.prototype.toCurrency = function() {

};

String.prototype.fromCurrency = function() {

};

@@ -973,31 +973,19 @@
 n() %7B%0A  
-if (this.match(
+// 
 /%5Ba-zA-Z
@@ -995,16 +995,46 @@
 %7B1,%7D%5B?%5D/
+%0A  if (this.trim().match(/%5C?$/
 ) === nu
@@ -1060,18 +1060,26 @@
 lse;%0A  %7D
-%0A%0A
+ else %7B%0A  
   return
@@ -1077,32 +1077,36 @@
    return true;%0A
+  %7D%0A
 %7D;%0A%0AString.proto
@@ -1145,16 +1145,70 @@
 rn this.
+replace(/%5C!%5C@%5C#%5C$%5C%25%5C%5E%5C&%5C*%5C(%5C)%5C_%5C+%5C;%5C:%5C.%5C,%3C%3E%5C?%5C'/, '').
 split(/%5C
@@ -1250,32 +1250,61 @@
  = function() %7B%0A
+  return this.words().length;
 %0A%7D;%0A%0AString.prot
@@ -1331,24 +1331,80 @@
 unction() %7B%0A
+  return this.replace(/(%5Cd)(?=(%5Cd%7B3%7D)+(?!%5Cd))/g, %22$1,%22);
 %0A%7D;%0A%0AString.
@@ -1441,12 +1441,59 @@
 ion() %7B%0A
+  return parseFloat(this.replace(/%5B%5C,%5D/g, ''));
 %0A%7D;%0A

Extend all the functions to String