rtrim.js 928 B

123456789101112131415161718192021222324
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", {
  3. value: true
  4. });
  5. exports.default = rtrim;
  6. var _assertString = _interopRequireDefault(require("./util/assertString"));
  7. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  8. function rtrim(str, chars) {
  9. (0, _assertString.default)(str);
  10. if (chars) {
  11. // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions#Escaping
  12. var pattern = new RegExp("[".concat(chars.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'), "]+$"), 'g');
  13. return str.replace(pattern, '');
  14. }
  15. // Use a faster and more safe than regex trim method https://blog.stevenlevithan.com/archives/faster-trim-javascript
  16. var strIndex = str.length - 1;
  17. while (/\s/.test(str.charAt(strIndex))) {
  18. strIndex -= 1;
  19. }
  20. return str.slice(0, strIndex + 1);
  21. }
  22. module.exports = exports.default;
  23. module.exports.default = exports.default;