方法一:
个人认为最好的方法.采用的是正则表达式,这是最核心的原理.
其次.这个方法使用了JavaScript 的prototype 属性
其实你不使用这个属性一样可以用函数实现.但这样做后用起来比较方便.
下面就来看看这个属性是怎么来用的.

返回对象类型原型的引用。
objectName.prototype
objectName 参数是对象的名称。
说明
用 prototype 属性提供对象的类的一组基本功能。对象的新实例“继承”赋予该对象原型的操作。

例如,要为 Array 对象添加返回数组中最大元素值的方法。要完成这一点,声明该函数,将它加入 Array.prototype,并使用它。

复制代码 代码如下:
function array_max( ){
var i, max = this[0];
for (i = 1; i < this.length; i++)
{
if (max < this[i])
max = this[i];
}
return max;
}
Array.prototype.max = array_max;
var x = new Array(1, 2, 3, 4, 5, 6);
var y = x.max( );

该代码执行后,y 保存数组 x 中的最大值,或说 6。
所有 JScript 内部对象都有只读的 prototype 属性。可以象该例中那样为原型添加功能,但该对象不能被赋予不同的原型。然而,用户定义的对象可以被赋给新的原型。

本语言参考中每个内部对象的方法和属性列表指出哪些是对象原型的部分,哪些不是。
下面是代码原文
程序代码

复制代码 代码如下:
<SCRIPT LANGUAGE="JavaScript">
<!--
//出处:网上搜集
//made by yaosansi 2005-12-02
//For more visit http://www.yaosansi.com
// Trim() , Ltrim() , RTrim()
String.prototype.Trim = function()
{
return this.replace(/(^\s*)|(\s*$)/g, "");
}
String.prototype.LTrim = function()
{
return this.replace(/(^\s*)/g, "");
}
String.prototype.RTrim = function()
{
return this.replace(/(\s*$)/g, "");
}
//-->
</SCRIPT>

下面来我们来看看Js脚本中"/s表示什么"
\s 匹配任何空白字符,包括空格、制表符、换页符等等。等价于 [ \f\n\r\t\v]。
请紧记是小写的s
方法二:
由于使用方法简单,所以这里就不举例子了.

复制代码 代码如下:
//javascript去空格函数
function LTrim(str){ //去掉字符串 的头空格
var i;
for(i=0;i if(str.charAt(i)!=" "&&str.charAt(i)!=" ") break;
}
str = str.substring(i,str.length);
return str;
}
function RTrim(str){
var i;
for(i=str.length-1;i>=0;i--){
if(str.charAt(i)!=" "&&str.charAt(i)!=" ") break;
}
str = str.substring(0,i+1);
return str;
}
function Trim(str){
return LTrim(RTrim(str));
}

方法三:
这个方法将函数写在一起,通过传递参数不同而达到不同的实现效果

复制代码 代码如下:
<HTML>
<HEAD>
<TITLE>JavaScript Trim Function</TITLE>
<SCRIPT LANGUAGE=javascript>
<!--
//****************************************************************
// Description: sInputString 为输入字符串,iType为类型,分别为
// 0 - 去除前后空格; 1 - 去前导空格; 2 - 去尾部空格
//****************************************************************
function cTrim(sInputString,iType)
{
var sTmpStr = ' '
var i = -1

if(iType == 0 || iType == 1)
{
while(sTmpStr == ' ')
{
++i
sTmpStr = sInputString.substr(i,1)
}
sInputString = sInputString.substring(i)
}

if(iType == 0 || iType == 2)
{
sTmpStr = ' '
i = sInputString.length
while(sTmpStr == ' ')
{
--i
sTmpStr = sInputString.substr(i,1)
}
sInputString = sInputString.substring(0,i+1)
}
return sInputString
}
//-->
</SCRIPT>

</HEAD>

<BODY>
JavaScript中的字符串去除空格函数(自定义):<br>

<SCRIPT LANGUAGE=javascript>
<!--
var sR0 = cTrim(" T e s t ",0)
var sR1 = cTrim(" T e s t ",1)
var sR2 = cTrim(" T e s t ",2)
document.write("R0 = '" + sR0 + "'<br>")
document.write("R1 = '" + sR1 + "'<br>")
document.write("R2 = '" + sR2 + "'<br>")
//-->
</SCRIPT>
</BODY>
</HTML>

From:http://www.jb51.net/article/33849.htm

最新文章

  1. hdu3572 最大流
  2. Caffe学习系列(11):数据可视化环境(python接口)配置
  3. Java设计模式系列1--原型模式(Prototype Method)
  4. 第一套增删改查(htm+ashx完成)
  5. B树索引和位图索引的区别!
  6. Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 44 bytes) in
  7. C++开发与Windows API
  8. Android开发之设定Dialog的位置
  9. Win7 公布网站 HTTP 错误 404.4 - Not Found
  10. 对discuz的代码分析学习(三)mysql驱动
  11. 通过判断浏览器的userAgent,用正则来判断是否是ios和Android客户端
  12. 直接请求转发(Forward)和间接请求转发(Redirect)两种区别?
  13. Egret学习笔记 (Egret打飞机-6.实现敌机飞起来)
  14. POJ-2299 Ultra-QuickSort---树状数组求逆序对+离散化
  15. docker 限制container容器使用内存大小,不限制swap
  16. 面试题_lambda函数调用
  17. SpringBootsad整合EhCache做缓存处理
  18. PAT A1076 Forwards on Weibo (30 分)——图的bfs
  19. Angular生成二维码
  20. Java千百问_05面向对象(005)_接口和抽象类有什么差别

热门文章

  1. python3 使用pymysql
  2. thinkphp框架的优缺点
  3. 红帽企业版Linux成为Linux下的.NET Core的参考平台
  4. BZOJ - 2243 染色 (树链剖分+线段树+区间合并)
  5. Soldier and Badges (set的检索简单运用)
  6. python IOError: cannot identify image file
  7. 数据库使用JDBC连接的方式
  8. Rabbitmq用户权限配置
  9. 三、Jmeter--HTTP请求默认值(HTTP Request Defaults)和访问地址参数化
  10. 2、配置Selenium RC