记得之前做询价平台的时候,已经在文本框做了非空判断,但是测试人员在输入全交空格之后,居然提交了。为了解决这个问题,我做了去除全交半角空格的判断。时隔几年,我总结一下js的去除空格、回车、制表位的方法!
str = str.replace(/<\/?[^>]*>/g,''); //去除HTML tag
str = str.replace(/[ | ]*\n/g,'\n'); //去除行尾空白
str = str.replace(/\n[\s| | ]*\r/g,'\n'); //去除多余空行
str=str.replace(/ /ig,'');//去掉
str=str.replace(/^[\s ]+|[\s ]+$/g, "");//去掉全角半角空格
str=str.replace(/[\r\n]/g,"");//去掉回车换行
上面的方法基本上能去除所有的空格,回车和制表位等等。 但是有时候我们需要去除左右空格,例如在搜索的时候。 去除左右空格方法:
function String.prototype.Trim() { return this.replace(/(^\s*)|(\s*$)/g, ""); } // 去掉左右空格
function String.prototype.Ltrim() { return this.replace(/(^\s*)/g, ""); } // 去掉左空格
function String.prototype.Rtrim() { return this.replace(/(\s*$)/g, ""); } // 去掉右空格
javascript判断是否为空函数:
function isEmpty( val )
{
switch (typeof(val))
{
case 'string':
return trim(val).length == 0 ? true : false;
break;
case 'number':
return val == 0;
break;
case 'object':
return val == null;
break;
case 'array':
return val.length == 0;
break;
default:
return true;
}
};
function trim( text )
{
if (typeof(text) == "string")
{
return text.replace(/^\s*|\s*$/g, "");
}
else
{
return text;
}
}
第二个trim函数,判断是否是字符串,假如是的话,去掉字符串左右空格,如果不是字符串,原文返回!