diff options
Diffstat (limited to 'node_modules/locutus/php/strings/str_ireplace.js')
-rw-r--r-- | node_modules/locutus/php/strings/str_ireplace.js | 102 |
1 files changed, 102 insertions, 0 deletions
diff --git a/node_modules/locutus/php/strings/str_ireplace.js b/node_modules/locutus/php/strings/str_ireplace.js new file mode 100644 index 0000000..63694c3 --- /dev/null +++ b/node_modules/locutus/php/strings/str_ireplace.js @@ -0,0 +1,102 @@ +'use strict'; + +var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; + +module.exports = function str_ireplace(search, replace, subject, countObj) { + // eslint-disable-line camelcase + // discuss at: http://locutus.io/php/str_ireplace/ + // original by: Glen Arason (http://CanadianDomainRegistry.ca) + // note 1: Case-insensitive version of str_replace() + // note 1: Compliant with PHP 5.0 str_ireplace() Full details at: + // note 1: http://ca3.php.net/manual/en/function.str-ireplace.php + // note 2: The countObj parameter (optional) if used must be passed in as a + // note 2: object. The count will then be written by reference into it's `value` property + // example 1: str_ireplace('M', 'e', 'name') + // returns 1: 'naee' + // example 2: var $countObj = {} + // example 2: str_ireplace('M', 'e', 'name', $countObj) + // example 2: var $result = $countObj.value + // returns 2: 1 + + var i = 0; + var j = 0; + var temp = ''; + var repl = ''; + var sl = 0; + var fl = 0; + var f = ''; + var r = ''; + var s = ''; + var ra = ''; + var otemp = ''; + var oi = ''; + var ofjl = ''; + var os = subject; + var osa = Object.prototype.toString.call(os) === '[object Array]'; + // var sa = '' + + if ((typeof search === 'undefined' ? 'undefined' : _typeof(search)) === 'object') { + temp = search; + search = []; + for (i = 0; i < temp.length; i += 1) { + search[i] = temp[i].toLowerCase(); + } + } else { + search = search.toLowerCase(); + } + + if ((typeof subject === 'undefined' ? 'undefined' : _typeof(subject)) === 'object') { + temp = subject; + subject = []; + for (i = 0; i < temp.length; i += 1) { + subject[i] = temp[i].toLowerCase(); + } + } else { + subject = subject.toLowerCase(); + } + + if ((typeof search === 'undefined' ? 'undefined' : _typeof(search)) === 'object' && typeof replace === 'string') { + temp = replace; + replace = []; + for (i = 0; i < search.length; i += 1) { + replace[i] = temp; + } + } + + temp = ''; + f = [].concat(search); + r = [].concat(replace); + ra = Object.prototype.toString.call(r) === '[object Array]'; + s = subject; + // sa = Object.prototype.toString.call(s) === '[object Array]' + s = [].concat(s); + os = [].concat(os); + + if (countObj) { + countObj.value = 0; + } + + for (i = 0, sl = s.length; i < sl; i++) { + if (s[i] === '') { + continue; + } + for (j = 0, fl = f.length; j < fl; j++) { + temp = s[i] + ''; + repl = ra ? r[j] !== undefined ? r[j] : '' : r[0]; + s[i] = temp.split(f[j]).join(repl); + otemp = os[i] + ''; + oi = temp.indexOf(f[j]); + ofjl = f[j].length; + if (oi >= 0) { + os[i] = otemp.split(otemp.substr(oi, ofjl)).join(repl); + } + + if (countObj) { + countObj.value += temp.split(f[j]).length - 1; + } + } + } + + return osa ? os : os[0]; +}; +//# sourceMappingURL=str_ireplace.js.map
\ No newline at end of file |