Javascript trim()函数实现

本文介绍三种JavaScript实现字符串去空格的方法,包括使用正则表达式、循环遍历和组合函数的方式,帮助开发者有效去除字符串两端及单边的空格。

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

在JavaScript中我们须要用到trim的地点很多,但是JavaScript又没有独立的trim函数或者要领可以运用,所以我们须要自己写个trim函数来实现我们的目的。

     方案一:
     以原型方式调用,即obj.trim()形式,此方式基本且运用方面广泛,定义方式如下:

<script language=”javascript”>
/**
* 删除左右两端的空格
*/
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>

运用示例如下:

<script type=”text/javascript”>
alert(document.getElementById(’abc’).value.trim());
alert(document.getElementById(’abc’).value.ltrim());
alert(document.getElementById(’abc’).value.rtrim());
</script>


 方案二:
     以工具方式调用,即trim(obj)的形式,此方式可以用于特殊处理须要,定义方式如下:
<script type=”text/javascript”>
/**
* 删除左右两端的空格
*/
function trim(str)
{
     return str.replace(/(^\s*)(\s*$)/g, ”);
}
/**
* 删除左边的空格
*/
function ltrim(str)
{
     return str.replace(/(^\s*)/g,”);
}
/**
* 删除右边的空格
*/
function rtrim(str)
{
     return str.replace(/(\s*$)/g,”);
}
</script>

运用示例如下:

<script type=”text/javascript”>

alert(trim(document.getElementById(’abc’).value));
alert(ltrim(document.getElementById(’abc’).value));
alert(rtrim(document.getElementById(’abc’).value));
</script>

方法一:
个人认为最好的方法.采用的是正则表达式,这是最核心的原理.
其次.这个方法使用了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>   1:     2: <!--   3: //****************************************************************   4: // Description: sInputString 为输入字符串,iType为类型,分别为   5: // 0 - 去除前后空格; 1 - 去前导空格; 2 - 去尾部空格   6: //****************************************************************   7: function cTrim(sInputString,iType)   8: {   9: var sTmpStr = ' '  10: var i = -1  11:    12: if(iType == 0 || iType == 1)  13: {  14: while(sTmpStr == ' ')  15: {  16: ++i  17: sTmpStr = sInputString.substr(i,1)  18: }  19: sInputString = sInputString.substring(i)  20: }  21:    22: if(iType == 0 || iType == 2)  23: {  24: sTmpStr = ' '  25: i = sInputString.length  26: while(sTmpStr == ' ')  27: {  28: --i  29: sTmpStr = sInputString.substr(i,1)  30: }  31: sInputString = sInputString.substring(0,i+1)  32: }  33: return sInputString  34: }  35: //--></SCRIPT>   1:     2: </HEAD>   3:     4: <BODY>   5: JavaScript中的字符串去除空格函数(自定义):<br>   6:     7: <SCRIPT LANGUAGE=javascript>   8: <!--   9: var sR0 = cTrim(" T e s t ",0)  10: var sR1 = cTrim(" T e s t ",1)  11: var sR2 = cTrim(" T e s t ",2)  12: document.write("R0 = '" + sR0 + "'<br>")  13: document.write("R1 = '" + sR1 + "'<br>")  14: document.write("R2 = '" + sR2 + "'<br>")  15: //--></SCRIPT>
 
</BODY>
</HTML>


 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值