function trim(strin, advancedtrim) {
/* nathanr: trim function for ecmascript, add in second param of true to trim all known spaces */
strin = strin.replace(/^\s+|\s+$/g, ''); //STANDARD REGEX whitespace
if(advancedtrim) {
strin = strin.replace(/^[\s\u0020]+|[\s\u0020]+$/g, ''); //SPACE
strin = strin.replace(/^[\s\u00A0]+|[\s\u00A0]+$/g, ''); //NO-BREAK SPACE
strin = strin.replace(/^[\s\u1361]+|[\s\u1361]+$/g, ''); //ETHIOPIC WORDSPACE
strin = strin.replace(/^[\s\u1680]+|[\s\u1680]+$/g, ''); //OGHAM SPACE MARK
strin = strin.replace(/^[\s\u2002]+|[\s\u2002]+$/g, ''); //EN SPACE
strin = strin.replace(/^[\s\u2003]+|[\s\u2003]+$/g, ''); //EM SPACE
strin = strin.replace(/^[\s\u2004]+|[\s\u2004]+$/g, ''); //THREE-PER-EM SPACE
strin = strin.replace(/^[\s\u2005]+|[\s\u2005]+$/g, ''); //FOUR-PER-EM SPACE
strin = strin.replace(/^[\s\u2006]+|[\s\u2006]+$/g, ''); //SIX-PER-EM SPACE
strin = strin.replace(/^[\s\u2007]+|[\s\u2007]+$/g, ''); //FIGURE SPACE
strin = strin.replace(/^[\s\u2008]+|[\s\u2008]+$/g, ''); //PUNCTUATION SPACE
strin = strin.replace(/^[\s\u2009]+|[\s\u2009]+$/g, ''); //THIN SPACE
strin = strin.replace(/^[\s\u200A]+|[\s\u200A]+$/g, ''); //HAIR SPACE
strin = strin.replace(/^[\s\u200B]+|[\s\u200B]+$/g, ''); //ZERO WIDTH SPACE
strin = strin.replace(/^[\s\u202F]+|[\s\u202F]+$/g, ''); //NARROW NO-BREAK SPACE
strin = strin.replace(/^[\s\u205F]+|[\s\u205F]+$/g, ''); //MEDIUM MATHEMATICAL SPACE
strin = strin.replace(/^[\s\u2408]+|[\s\u2408]+$/g, ''); //BACKSPACE SYMBOL
strin = strin.replace(/^[\s\u2420]+|[\s\u2420]+$/g, ''); //SYMBOL FOR SPACE
strin = strin.replace(/^[\s\u3000]+|[\s\u3000]+$/g, ''); //IDEOGRAPHIC SPACE
strin = strin.replace(/^[\s\u303F]+|[\s\u303F]+$/g, ''); //IDEOGRAPHIC HALF FILL SPACE
}
return strin;
}
we all need to trim - and trim properly!