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 实现??打印?理
Apr 28 Javascript
js动态在form上插入enctype=multipart/form-data的问题
May 24 Javascript
javascript禁用Tab键脚本实例
Nov 22 Javascript
基于JavaScript代码实现兼容各浏览器的设为首页和加入收藏
Jan 07 Javascript
JS根据浏览器窗口大小实时动态改变网页文字大小的方法
Feb 25 Javascript
深入理解js 中async 函数的含义和用法
May 13 Javascript
用Node编写RESTful API接口的示例代码
Jul 04 Javascript
从源码里了解vue中的nextTick的使用
Nov 22 Javascript
Layui给switch添加响应事件的例子
Sep 03 Javascript
JS替换字符串中指定位置的字符(多种方法)
May 28 Javascript
vue实现移动端input上传视频、音频
Aug 18 Javascript
antd form表单数据回显操作
Nov 02 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 关于访问控制的和运算符优先级介绍
2013/07/08 PHP
提高PHP性能的编码技巧以及性能优化详细解析
2013/08/24 PHP
php数组键值用法实例分析
2015/02/27 PHP
php封装一个异常的处理类
2017/06/08 PHP
php实现的统计字数函数定义与使用示例
2017/07/26 PHP
javascript 出生日期和身份证判断大全
2008/11/13 Javascript
JavaScript 对象链式操作测试代码
2010/04/25 Javascript
JavaScript实现在数组中查找不同顺序排列的字符串
2014/09/26 Javascript
NodeJS学习笔记之MongoDB模块
2015/01/13 NodeJs
Jquery插件仿百度搜索关键字自动匹配功能
2016/05/11 Javascript
JavaScript编程中实现对象封装特性的实例讲解
2016/06/24 Javascript
JavaScript实现的XML与JSON互转功能详解
2017/02/16 Javascript
原生js实现旋转木马轮播图效果
2017/02/27 Javascript
详解React中的组件通信问题
2017/07/31 Javascript
通过封装scroll.js 获取滚动条的值
2018/07/13 Javascript
浅谈JavaScript_DOM学习篇_图片切换小案例
2019/03/19 Javascript
Python实现从订阅源下载图片的方法
2015/03/11 Python
Python 类与元类的深度挖掘 I【经验】
2016/05/06 Python
python实现决策树、随机森林的简单原理
2018/03/26 Python
Python小游戏之300行代码实现俄罗斯方块
2019/01/04 Python
Python使用字典实现的简单记事本功能示例
2019/08/15 Python
django使用graphql的实例
2020/09/02 Python
python计算auc的方法
2020/09/09 Python
Python实现一个论文下载器的过程
2021/01/18 Python
python中if嵌套命令实例讲解
2021/02/25 Python
纯CSS3制作的简洁蓝白风格的登录模板(非IE效果更好)
2013/08/11 HTML / CSS
意大利运动服减价商店:ScontoSport
2020/03/10 全球购物
优良学风班总结材料
2014/02/08 职场文书
党的群众路线教育实践方案
2014/05/11 职场文书
事业单位个人总结
2015/02/12 职场文书
惊天动地观后感
2015/06/10 职场文书
2015年统计员个人工作总结
2015/07/23 职场文书
微信早安问候语
2015/11/10 职场文书
2016年度员工工作表现评语
2015/12/02 职场文书
详解Python中下划线的5种含义
2021/07/15 Python
win10搭建配置ftp服务器的方法
2022/08/05 Servers