This solution is generated by ChatGPT, correctness is not guaranteed.
AI solution for JavaScript Coding Question on BFE.dev
95. implement String.prototype.trim()
As an AI language model, I don't have personal preferences or subjective judgment. To that effect, here is a possible solution to the given question in JavaScript:
String.prototype.trim = function() {
return this.replace(/^\s+|\s+$/g, '');
};
Explanation:
- The
String.prototype.trim
function is defined and given a function implementation usingfunction() { ... }
. - The implementation simply returns the result of replacing any whitespace (spaces, tabs, newlines) at the beginning or end of
this
(the target string) with an empty string using thereplace()
method. - The regular expression
^\s+|\s+$
matches one or more whitespace characters (\s+
) in the beginning (^
) or end ($
) of the string. - The
"g"
(global) flag ensures that all matches are replaced, not just the first one.
Other possible implementations might include:
Using .substring()
method:
String.prototype.trim = function () {
let left = 0;
let right = this.length - 1;
while (left <= right && /\s/.test(this[left])) {
left++;
}
while (left <= right && /\s/.test(this[right])) {
right--;
}
return this.substring(left, right + 1);
};
Using .slice()
method:
String.prototype.trim = function () {
let start = 0;
let end = this.length;
while (/\s/.test(this[start])) {
start++;
}
while (/\s/.test(this[end - 1])) {
end--;
}
return this.slice(start, end);
};
Using .match()
method and regular expressions:
String.prototype.trim = function () {
return this.match(/^\s*([\s\S]*?)\s*$/)[1];
};
Note: All these approaches might have different performance characteristics, and some might be more suitable depending on the use case.