js去字符串前后空格5种实现方法及比较


Posted in Javascript onApril 03, 2013

我们在项目中如果写到注册的时候,用户输入空格,我们怎么来剔除空格呢?
下面是我经常用到的js与大家分享下:

第一种:循环检查替换
[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; 
} 
//去掉右边的空白 3water.com 
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; 
}

第二种:正则替换
[javascript]
<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>

第三种:使用jquery
[javascript]
$.trim(str)

jquery内部实现为:
[javascript]
function trim(str){ 
return str.replace(/^(\s|\u00A0)+/,'').replace(/(\s|\u00A0)+$/,''); 
}

第四种:使用motools
[javascript]
function trim(str){ 
return str.replace(/^(\s|\xA0)+|(\s|\xA0)+$/g, ''); 
}

第五种:裁剪字符串方式
[javascript]
function trim(str){ 
str = str.replace(/^(\s|\u00A0)+/,''); 
for(var i=str.length-1; i>=0; i--){ 
if(/\S/.test(str.charAt(i))){ 
str = str.substring(0, i+1); 
break; 
} 
} 
return str; 
}

经过测试第五种方法在处理长字符串时效率最高
<script type="text/JavaScript"> 
//去掉空格 
function SystemTrim(str) { 
var regExp = /(^\s*)|(\s*$)/; 
return str.replace(regExp,""); 
} 
//调用 
function add() 
{ 
var ownername=document.form1.ownername.value; 
if(SystemTrim(ownername)=="") 
{ 
alert("请输入您的称呼!"); 
return; 
} 
} 
<script>
Javascript 相关文章推荐
javascript中用星号表示预录入内容的实现代码
Jan 08 Javascript
JS数学函数Exp使用说明
Aug 09 Javascript
js同比例缩放图片的小例子
Oct 30 Javascript
wap浏览自动跳转到wap页面的js代码
May 17 Javascript
深入了解Node.js中的一些特性
Sep 25 Javascript
JavaScript的Polymer框架中dom-repeat与VM的相关操作
Jul 29 Javascript
基于javascript实现仿百度输入框自动匹配功能
Jan 03 Javascript
JavaScript图像延迟加载库Echo.js
Apr 05 Javascript
vuejs通过filterBy、orderBy实现搜索筛选、降序排序数据
Oct 26 Javascript
lhgcalendar时间插件限制只能选择三个月的实现方法
Jul 03 Javascript
vue router demo详解
Oct 13 Javascript
antd Upload 文件上传的示例代码
Dec 14 Javascript
终于解决了IE8不支持数组的indexOf方法
Apr 03 #Javascript
jQuery布局插件UI Layout简介及使用方法
Apr 03 #Javascript
简单实例处理url特殊符号&amp;处理(2种方法)
Apr 02 #Javascript
JS获取浏览器版本及名称实现函数
Apr 02 #Javascript
js 火狐下取本地路径实现思路
Apr 02 #Javascript
input 输入框获得/失去焦点时隐藏/显示文字(jquery版)
Apr 02 #Javascript
JQuery给元素添加/删除节点比如select
Apr 02 #Javascript
You might like
PHP新手上路(八)
2006/10/09 PHP
php中file_get_contents与curl性能比较分析
2014/11/08 PHP
php中执行系统命令的方法
2015/03/21 PHP
百度工程师讲PHP函数的实现原理及性能分析(三)
2015/05/13 PHP
document.all与WEB标准
2020/05/13 Javascript
JavaScript入门教程(1) 什么是JS
2009/01/31 Javascript
Extjs列表详细信息窗口新建后自动加载解决方法
2010/04/02 Javascript
A标签触发onclick事件而不跳转的多种解决方法
2013/06/27 Javascript
JavaScript自定义日期格式化函数详细解析
2014/01/14 Javascript
javascript手工制作悬浮菜单
2015/02/12 Javascript
详解javascript函数的参数
2015/11/10 Javascript
基于jQuery Tipso插件实现消息提示框特效
2016/03/16 Javascript
jQuery DataTables插件自定义Ajax分页实例解析
2020/04/28 Javascript
Javascript中的迭代、归并方法详解
2016/06/14 Javascript
jQuery回到顶部的代码
2016/07/09 Javascript
jquery滚动条插件(可以自定义)
2016/12/11 Javascript
页面内锚点定位及跳转方法总结(推荐)
2019/04/24 Javascript
详解JavaScript之ES5的继承
2020/07/08 Javascript
解决Ant Design Modal内嵌Form表单initialValue值不动态更新问题
2020/10/29 Javascript
python入门教程之识别验证码
2017/03/04 Python
一个月入门Python爬虫学习,轻松爬取大规模数据
2018/01/03 Python
Python PyQt4实现QQ抽屉效果
2018/04/20 Python
Python运行不显示DOS窗口的解决方法
2018/10/22 Python
将string类型的数据类型转换为spark rdd时报错的解决方法
2019/02/18 Python
一款纯css3实现的动画加载导航
2014/10/08 HTML / CSS
英国家庭家具、照明和花园家具购物网站:Furniture123
2018/12/31 全球购物
美国排名第一的葡萄酒俱乐部:Firstleaf Wine Club
2020/01/02 全球购物
美国折扣地毯销售网站:Rugs.com
2020/03/27 全球购物
会计专业职业规划:规划自我赢取未来
2014/02/12 职场文书
构建高效课堂实施方案
2014/03/13 职场文书
共产党员公开承诺践诺书
2014/05/28 职场文书
爱国口号
2014/06/19 职场文书
企业爱岗敬业演讲稿
2014/09/04 职场文书
人才市场接收函
2015/01/30 职场文书
mysql查询的控制语句图文详解
2021/04/11 MySQL
Python基础详解之邮件处理
2021/04/28 Python