本文介绍JavaScript中去除字符串空格的三种常用方法。第一种利用正则表达式配合String.prototype扩展,简洁高效;第二种通过遍历字符手动实现LTrim、RTrim及Trim函数;第三种使用单一函数cTrim,通过iType参数控制去除前导、尾部或两端空格。文章包含完整代码示例及正则符号\s的解释。
使用正则表达式与prototype扩展
推荐采用正则表达式的方式,这是实现该功能的核心原理。
该方法利用了JavaScript的prototype属性来扩展对象功能。
即使不使用prototype属性,也可以通过普通函数实现相同功能,但使用prototype后调用更为便捷。
接下来详细说明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> 接下来解释JavaScript脚本中正则表达式"\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>