一. 去除空格trim() 方法
在Java 语言中,String 类中有一个trim() 去除左右空格的方法, 在JS中,以前是没有这样的方法的,需要自己手动书写,现在有了,但是这个trim() 方法,还是要理解的,所以总结归纳一下。
二. 比较笨的 前面去空格的方法。
一看例子就明白。
二.一 去除左空格 ltrim()
function ltrim(str){ if(str==""||str==undefined){ return ""; } var n=0; for(var i=0,length=str.length;i<length;i++){ var c=str.charAt(i); if(c!=" "){ //如果为空,就将索引继续添加。 里面有一个空格。 break; } n++; } return str.substring(n); }
二.二 去除右空格 rtrim()
function rtrim(str){ if(str==""||str==undefined){ return ""; } var n=str.length; for(var i=str.length-1;i>=0;i--){ var c=str.charAt(i); if(c!=" "){ //如果为空,就将索引继续添加。 break; } n--; } return str.substring(0,n); }
二.三 去除左右空格 trim()
function trim(str){ return rtrim(ltrim(str)); }
这种方式不太好。
var name=" 你好, 我要去空格 "; console.log("去除左空格是:"+ltrim(name)+",结束"); console.log("去除右空格是:"+rtrim(name)+",结束"); console.log("去除左右空格是:"+trim(name)+",结束");
验证为:
注意,不会去除掉字符串中间的空格。
三. 正则表达式验证
主要是将不可见字符替换成"" . (中间没有空格)
function ltrim(str){ // \s 为任意的空白符. 包括空格,换行符,制表 符,换页符 。 \f\n\r\t\v return str.replace(/(^\s*)/g,""); } function rtrim(str){ return str.replace(/(\s*$)/g,""); } function trim(str){ return str.replace(/(^\s*)|(\s*$)/g,""); }
也可以:
function trim(str) { if (str == null) { return ""; } return str.replace(/^\s*(.*?)[\s\n]*$/g,'$1'); }
四. JS中String 类扩展
利用原型,进行相应的扩展。
String.prototype.ltrim=function(){ return this.replace(/(^\s*)/g,""); } String.prototype.rtrim=function(){ return this.replace(/(\s*$)/g,""); } String.prototype.trim=function(){ return this.replace(/(^\s*)|(\s*$)/g, ""); }
这样,就可以直接
var name=" 张三 " .trim();
即可,仿佛是js 中字符串的方法。 (虽然现在JS已经提供了)
五. Jquery 中的trim() 方法。
$.trim(字符串) 方法。
var name=" 你好, 我是js新提供去除空格 "; console.log("去除左右空格是:"+name.trim()+",结束"); console.log("去除左空格是:"+name.trimLeft()+",结束"); console.log("去除右空格是:"+name.trimRight()+",结束"); console.log("去除开始空格是:"+name.trimStart()+",结束"); console.log("去除结束空格是:"+name.trimEnd()+",结束");
trimLeft() 与trimStart() 方法一致, trimRight() 与trimEnd() 方法一致。
可以直接使用JS自带的方法。
谢谢!!!