本文介绍 JavaScript 中去除字符串空格的常用方法。包括使用正则表达式去除首尾空格、全局去除所有空格,以及 jQuery 的 $.trim() 方法。针对不支持原生 trim 的旧浏览器,提供了完整的 Polyfill 实现代码,涵盖左右清除及换行符处理,确保跨浏览器兼容性。
去除字符串首尾空格的方法
1、 去除字符串首尾的所有空格:
实现代码如下:
function Trim(str)
{
return str.replace(/(^\s*)|(\s*$)/g, "");
}
代码说明:
若项目已引入 jQuery,可直接调用 $.trim(str) 方法,其中 str 为需要去除首尾空格的字符串变量。
去除字符串内部所有空格
2、 去除字符串内部所有空格(含中间空格,需将第二个参数设置为 'g')
实现代码如下:
function Trim(str,is_global)
{
var result;
result = str.replace(/(^\s+)|(\s+$)/g,"");
if(is_global.toLowerCase()=="g")
{
result = result.replace(/\s/g,"");
}
return result;
}
浏览器兼容性 Polyfill 实现
当前主流浏览器大多已原生支持字符串的 trim 函数。为确保在不支持该特性的旧版浏览器中正常运行,建议在 JavaScript 文件中添加以下兼容代码(若无需清除换行符,请删除 \n;若无需清除制表符,请删除 \t):
if (!String.prototype.trim) {
/*---------------------------------------
* 清除字符串两端空格,包含换行符、制表符
*---------------------------------------*/
String.prototype.trim = function () {
return this.triml().trimr();
}
/*----------------------------------------
* 清除字符串左侧空格,包含换行符、制表符
* ---------------------------------------*/
String.prototype.triml = function () {
return this.replace(/^[\s\n\t]+/g, "");
}
/*----------------------------------------
* 清除字符串右侧空格,包含换行符、制表符
*----------------------------------------*/
String.prototype.trimr = function () {
return this.replace(/[\s\n\t]+$/g, "");
}
}
如果仅需实现基本的 trim 功能,可使用以下简化版本:
if (!String.prototype.trim){
/*---------------------------------------
* 清除字符串两端空格,包含换行符、制表符
*---------------------------------------*/
String.prototype.trim = function () {
return this.replace(/(^[\s\n\t]+|[\s\n\t]+$)/g, "");
}
}
代码使用示例:
var str = " abcd ".trim();