JavaScript 去除字符串空格:原生函数与正则表达式实现详解

作者:小括号时间:2026-10-24 09:34:06浏览:664

本文详细介绍了在原生JavaScript中去除字符串空格的两种实现方式。首先展示了通过手动编写trimLeft和trimRight函数来模拟trim功能的逻辑,其次提供了利用正则表达式扩展String原型的方法,包括Trim、LTrim和RTrim的实现。文中包含完整的代码示例及HTML测试界面,帮助开发者在不依赖jQuery等框架的情况下处理字符串空白字符。

原生JavaScript手动实现去空格函数

若项目未引入jQuery等第三方框架,且JavaScript原生环境缺乏现成的去空格函数,开发者需自行实现相关功能。以下是具体的函数实现代码:


代码如下:

 
//供使用者调用
function trim(s){
return trimRight(trimLeft(s));
} 
//去掉左边的空白
function trimLeft(s){
if(s == null) {
return "";
} 
var whitespace = new String(" \t\n\r");
var str = new String(s);
if (whitespace.indexOf(str.charAt(0)) != -1) {
var j=0, i = str.length;
while (j < i && whitespace.indexOf(str.charAt(j)) != -1){
j++;
} 
str = str.substring(j, i);
} 
return str;
} 
//去掉右边的空白
function trimRight(s){
if(s == null) return "";
var whitespace = new String(" \t\n\r");
var str = new String(s);
if (whitespace.indexOf(str.charAt(str.length-1)) != -1){
var i = str.length - 1;
while (i >= 0 && whitespace.indexOf(str.charAt(i)) != -1){
i--;
} 
str = str.substring(0, i+1);
} 
return str;
} 

使用时只需调用trim函数即可。


基于正则表达式的String原型扩展方法

下面是用正则的实现方法:


代码如下:

 
<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>
<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=' 前后都是空格 ';">

由于编辑器渲染原因,上述代码中的空格可能被替换,实际使用时请确保正确添加空格并进行测试。

作者最新文章