Trim com expressão regular em JavaScript

Bom dia.

Hoje eu precisei fazer uma expressão regular para eliminar “espaços” nas bordas de uma String, o famos “trim”. Antes de começar a fazer, procurei na internet e vi algo do tipo:

String.prototype.trim = function() { return this.replace( /^\s+|\s+$/g, "");

Achei isso estranho. Pois aparentemente ele só trata espaços. O que acontece com outros caractes, como retorno, tabs e etc? Para resolver o problema substitui por:

String.prototype.trim = function() { return this.replace( /^\W+|\W+$/g, "");

Alguém, mais sábio em JavaScript, vê algum problema nesta implementação? Estou perguntando isso, pq vejo que tudo quanto é site implementa da maneira anterior.

Abs!

http://www.regextester.com/jssyntax.html

\s = “whitespace” (ou seja, espaços, tabs, form feeds, carriage returns, line feeds, vertical tabs)

\W = “non - word characters” (ou seja, tudo que não for A-Z, a-z, 0-9, _

O que você achou na Internet é melhor que a sua substituição, porque sua proposta pode cortar outros caracteres como “,”, “-”, “;” etc.

Boa tarde.

\s = apenas espaços. Ele não está considerando retorno de linha, tabs e etc. Vou ter que melhorar um pouco mais em cima do \W, eu acho, assim posso considerar os sinais. Talvez \s com mais alguma coisa também resolva.

Abs!