JavaScript去除空格的三种方法 (trim)

本文介绍三种JavaScript去除字符串前后空格的方法:利用正则表达式扩展String原型,通过循环检查字符,及创建单一函数处理不同类型的空格移除需求。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

方法一:
个人认为最好的方法.采用的是正则表达式,这是最核心的原理.
其次.这个方法使用了JavaScript的prototype 属性

其实你不使用这个属性一样可以用函数实现.但这样做后用起来比较方便.
下面就来看看这个属性是怎么来用的.

引用内容

-----------------------------------------------------------------------------------------------------------------------------

返回对象类型原型的引用。

objectName.prototype
objectName 参数是对象的名称。

说明
用 prototype 属性提供对象的类的一组基本功能。对象的新实例“继承”赋予该对象原型的操作。

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

js 代码
  1. function array_max( ){   
  2.    var i, max = this[0];   
  3.    for (i = 1; i < this.length; i++)   
  4.    {   
  5.    if (max < this[i])   
  6.    max = this[i];   
  7.    }   
  8.    return max;   
  9. }   
  10. Array.prototype.max = array_max;   
  11. var x = new Array(1, 2, 3, 4, 5, 6);   
  12. 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>

 

使用方法见以下代码

html代码

<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>

<input type="text" value="   前后都是空格    " id="space">
<input type="button" value="去前后空格" onclick="javascript:document.getElementById('space').value=document.getElementById('space').value.Trim();document.getElementById('space').select();">
<input type="button" value="去前空格" onclick="javascript:document.getElementById('space').value=document.getElementById('space').value.LTrim();document.getElementById('space').select();">
<input type="button" value="去后空格" onclick="javascript:document.getElementById('space').value=document.getElementById('space').value.RTrim();document.getElementById('space').select();">
<input type="button" value="还原" onclick="javascript:document.getElementById('space').value='     前后都是空格    ';">
<href="http://www.yaoasnsi.com" target="_blank">访问yaosansi.com</a>

 

下面来我们来看看Js脚本中"/s表示什么" , 请紧记是小写的s
引用内容

-------------------------------------------------------------------------------------------------------------------------------

/s 匹配任何空白字符,包括空格、制表符、换页符等等。等价于 [ /f/n/r/t/v]。

---------------------------------------------------------------------------------------------------------------------------------------

 

方法二:
由于使用方法简单,所以这里就不举例子了.

//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 
= ' '
= 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>

 

 

   运行效果如下

<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 
= ' '
= 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>


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值