jquery.trim与string.trim相比

one*_*eat 9 javascript jquery trim

jQuery trim和原生JavaScript之间有什么区别吗?

还有其他行为,安全,性能吗?

Rok*_*jan 6

JavaScript .trim()在ES 5.1中定义,不适用于IE <9.因此,如果您已经使用jQuery,则可以使用性能较低的$.trim()


jQuery的 $.trim()方法:

trim: function( text ) {
    return text == null ? "" : ( text + "" ).replace( rtrim, "" );
}
Run Code Online (Sandbox Code Playgroud)

rtrim基本上这个RegExp 在哪里

new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + whitespace + "+$", "g" )
Run Code Online (Sandbox Code Playgroud)

whitespace表示为此组:

"[\\x20\\t\\r\\n\\f]"
Run Code Online (Sandbox Code Playgroud)


JavaScript(ES6)中,它被定义为:

21.1.3.25 String.prototype.trim()

此函数将String值解释为UTF-16编码的代码点序列,如6.1.4中所述.

执行以下步骤:设O为RequireObjectCoercible(此值).设S为ToString(O).ReturnIfAbrupt(S).设T是一个String值,它是S的副本,同时删除了前导和尾随空格.白色空间的定义是WhiteSpace和LineTerminator的结合.在确定Unicode代码点是否在Unicode通用类别"Zs"中时,代码单元序列被解释为6.1.4中规定的UTF-16编码的代码点序列.返回T.注意修剪功能是有意通用的; 它不要求它的这个值是一个String对象.因此,它可以转移到其他种类的对象以用作方法.

所以更不用说.trim()向浏览器供应商实现JS了,重点很明确:
从String的开头和结尾删除任何换行符或空格的表示.