ES Proposal spec-compliant shim for String.prototype.replaceAll. Invoke its "shim" method to shim String.prototype.replaceAll if it is unavailable or noncompliant.
This package implements the es-shim API interface. It works in an ES3-supported environment, and complies with the proposed spec.
Most common usage:
constassert=require('assert');constreplaceAll=require('string.prototype.replaceall');conststr='aabc';// replaceAll and replace are the same, when given a global regex to replaceassert.equal(replaceAll(str,/a/g,'z'),str.replace(/a/g,'z'));// replace, with a string, replaces onceassert.equal(str.replace('a','z'),'zabc');// replaceAll, with a string, replaces allassert.equal(replaceAll(str,'a','z'),'zzbc');replaceAll.shim();// will be a no-op if not needed// replaceAll and replace are the same, when given a global regex to replaceassert.equal(str.replaceAll(/a/g,'z'),str.replace(/a/g,'z'));// replace, with a string, replaces onceassert.equal(str.replace('a','z'),'zabc');// replaceAll, with a string, replaces allassert.equal(str.replaceAll('a','z'),'zzbc');Simply clone the repo, npm install, and run npm test
