实现1
1.String.prototype.trim = function() {
2. return this.replace(/^ss*/, '').replace(/ss*$/, '');
3.}
看起来不怎么样,动用了两次正则替换,实际速度非常惊人,主要得益于浏览器的内部优化。一个著名的例子字符串拼接,直接相加比用Array做成的StringBuffer还快。base2类库使用这种实现。
实现2
1.String.prototype.trim = function() {
2. return this.replace(/^s+/, '').replace(/s+$/, '');
3.}
和实现1很相似,但稍慢一点,主要原因是它最先是假设至少存在一个空白符。Prototype.js使用这种实现,不过其名字为strip,因为Prototype的方法都是力求与Ruby同名。
实现3
1.String.prototype.trim = function(...
先查了一下字典,确认 trim 是整理修剪之意(并非专指去除空白),在 vbscript 或 C# 里其作用去掉字符串两端多余的空格。JavaScript 语言本没有此方法,因此很多人开始给 String 原型增加 trim 方法(同时还有ltrim与rtrim),在网上能找到的版本是《增加 javascript 的 trim 函数》
此次要扩展的功能是切掉字符串两端指定的字符数,类似于 vbscript 的 left()与right()方法。执行 "string".trim(1,2),其结果将是 tri 。trim 函数的两个参数类型都属于 Number,第一个表示左边需要剪切的字符数量,第二个参数表示右边需要剪切的字符数量。
把之前两次的扩展总结一下,trim 方...